analysis.convex.slope ⟷ Mathlib.Analysis.Convex.Slope

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

feat(analysis/convex/specific_functions): elementary convexity proofs (#19026)

Give elementary proofs for the convexity of pow, zpow, exp, log and rpow, avoiding the second derivative test.

See Zulip

Diff
@@ -217,6 +217,128 @@ lemma strict_concave_on_iff_slope_strict_anti_adjacent :
 ⟨λ h, ⟨h.1, λ x y z, h.slope_anti_adjacent⟩,
   λ h, strict_concave_on_of_slope_strict_anti_adjacent h.1 h.2⟩
 
+lemma convex_on.secant_mono_aux1 (hf : convex_on π•œ s f)
+  {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y) (hyz : y < z) :
+  (z - x) * f y ≀ (z - y) * f x + (y - x) * f z :=
+begin
+  have hxy' : 0 < y - x := by linarith,
+  have hyz' : 0 < z - y := by linarith,
+  have hxz' : 0 < z - x := by linarith,
+  rw ← le_div_iff' hxz',
+  have ha : 0 ≀ (z - y) / (z - x) := by positivity,
+  have hb : 0 ≀ (y - x) / (z - x) := by positivity,
+  calc f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) : _
+  ... ≀ (z - y) / (z - x) * f x + (y - x) / (z - x) * f z : hf.2 hx hz ha hb _
+  ... = ((z - y) * f x + (y - x) * f z) / (z - x) : _,
+  { congr' 1,
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne'],
+    ring },
+  { field_simp [hxy'.ne', hyz'.ne', hxz'.ne'] },
+  { field_simp [hxy'.ne', hyz'.ne', hxz'.ne'] }
+end
+
+lemma convex_on.secant_mono_aux2 (hf : convex_on π•œ s f)
+  {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y) (hyz : y < z) :
+  (f y - f x) / (y - x) ≀ (f z - f x) / (z - x) :=
+begin
+  have hxy' : 0 < y - x := by linarith,
+  have hxz' : 0 < z - x := by linarith,
+  rw div_le_div_iff hxy' hxz',
+  linarith only [hf.secant_mono_aux1 hx hz hxy hyz],
+end
+
+lemma convex_on.secant_mono_aux3 (hf : convex_on π•œ s f)
+  {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y) (hyz : y < z) :
+  (f z - f x) / (z - x) ≀ (f z - f y) / (z - y) :=
+begin
+  have hyz' : 0 < z - y := by linarith,
+  have hxz' : 0 < z - x := by linarith,
+  rw div_le_div_iff hxz' hyz',
+  linarith only [hf.secant_mono_aux1 hx hz hxy hyz],
+end
+
+lemma convex_on.secant_mono (hf : convex_on π•œ s f)
+  {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
+  (f x - f a) / (x - a) ≀ (f y - f a) / (y - a) :=
+begin
+  rcases eq_or_lt_of_le hxy with rfl | hxy,
+  { simp },
+  cases lt_or_gt_of_ne hxa with hxa hxa,
+  { cases lt_or_gt_of_ne hya with hya hya,
+    { convert hf.secant_mono_aux3 hx ha hxy hya using 1;
+      rw ← neg_div_neg_eq;
+      field_simp, },
+    { convert hf.slope_mono_adjacent hx hy hxa hya using 1,
+      rw ← neg_div_neg_eq;
+      field_simp, } },
+  { exact hf.secant_mono_aux2 ha hy hxa hxy, },
+end
+
+lemma strict_convex_on.secant_strict_mono_aux1 (hf : strict_convex_on π•œ s f)
+  {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y) (hyz : y < z) :
+  (z - x) * f y < (z - y) * f x + (y - x) * f z :=
+begin
+  have hxy' : 0 < y - x := by linarith,
+  have hyz' : 0 < z - y := by linarith,
+  have hxz' : 0 < z - x := by linarith,
+  rw ← lt_div_iff' hxz',
+  have ha : 0 < (z - y) / (z - x) := by positivity,
+  have hb : 0 < (y - x) / (z - x) := by positivity,
+  calc f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) : _
+  ... < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z : hf.2 hx hz (by linarith) ha hb _
+  ... = ((z - y) * f x + (y - x) * f z) / (z - x) : _,
+  { congr' 1,
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne'],
+    ring },
+  { field_simp [hxy'.ne', hyz'.ne', hxz'.ne'] },
+  { field_simp [hxy'.ne', hyz'.ne', hxz'.ne'] }
+end
+
+lemma strict_convex_on.secant_strict_mono_aux2 (hf : strict_convex_on π•œ s f)
+  {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y) (hyz : y < z) :
+  (f y - f x) / (y - x) < (f z - f x) / (z - x) :=
+begin
+  have hxy' : 0 < y - x := by linarith,
+  have hxz' : 0 < z - x := by linarith,
+  rw div_lt_div_iff hxy' hxz',
+  linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz],
+end
+
+lemma strict_convex_on.secant_strict_mono_aux3 (hf : strict_convex_on π•œ s f)
+  {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y) (hyz : y < z) :
+  (f z - f x) / (z - x) < (f z - f y) / (z - y) :=
+begin
+  have hyz' : 0 < z - y := by linarith,
+  have hxz' : 0 < z - x := by linarith,
+  rw div_lt_div_iff hxz' hyz',
+  linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz],
+end
+
+lemma strict_convex_on.secant_strict_mono (hf : strict_convex_on π•œ s f)
+  {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
+  (f x - f a) / (x - a) < (f y - f a) / (y - a) :=
+begin
+  cases lt_or_gt_of_ne hxa with hxa hxa,
+  { cases lt_or_gt_of_ne hya with hya hya,
+    { convert hf.secant_strict_mono_aux3 hx ha hxy hya using 1;
+      rw ← neg_div_neg_eq;
+      field_simp, },
+    { convert hf.slope_strict_mono_adjacent hx hy hxa hya using 1,
+      rw ← neg_div_neg_eq;
+      field_simp, } },
+  { exact hf.secant_strict_mono_aux2 ha hy hxa hxy, },
+end
+
+lemma strict_concave_on.secant_strict_mono (hf : strict_concave_on π•œ s f)
+  {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
+  (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
+begin
+  have key := hf.neg.secant_strict_mono ha hx hy hxa hya hxy,
+  simp only [pi.neg_apply] at key,
+  rw ← neg_lt_neg_iff,
+  convert key using 1; field_simp,
+end
+
 /-- If `f` is convex on a set `s` in a linearly ordered field, and `f x < f y` for two points
 `x < y` in `s`, then `f` is strictly monotone on `s ∩ [y, ∞)`. -/
 lemma convex_on.strict_mono_of_lt (hf : convex_on π•œ s f)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -31,7 +31,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
     (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f y) / (z - y) :=
   by
   have hxz := hxy.trans hyz
-  rw [← sub_pos] at hxy hxz hyz 
+  rw [← sub_pos] at hxy hxz hyz
   suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by ring_nf at this ⊒;
     linarith
   set a := (z - y) / (z - x)
@@ -41,7 +41,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
       (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring; linarith])
-  rw [hy] at key 
+  rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
   rw [div_le_div_right]
@@ -72,7 +72,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   by
   have hxz := hxy.trans hyz
   have hxz' := hxz.ne
-  rw [← sub_pos] at hxy hxz hyz 
+  rw [← sub_pos] at hxy hxz hyz
   suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by ring_nf at this ⊒;
     linarith
   set a := (z - y) / (z - x)
@@ -81,7 +81,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
       (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring; linarith])
-  rw [hy] at key 
+  rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
   rw [div_lt_div_right]
@@ -125,15 +125,15 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
     have hxz : 0 < z - x := sub_pos.2 (hxy.trans hyz)
     have ha : (z - y) / (z - x) = a :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab 
+      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     have hb : (y - x) / (z - x) = b :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add] at hab 
+      rw [eq_comm, ← sub_eq_iff_eq_add] at hab
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     rwa [sub_mul, sub_mul, sub_le_iff_le_add', ← add_sub_assoc, le_sub_iff_add_le, ← mul_add,
       sub_add_sub_cancel, ← le_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
-      mul_comm (f z), ha, hb] at this 
+      mul_comm (f z), ha, hb] at this
 #align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacent
 -/
 
@@ -175,15 +175,15 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
     have hxz : 0 < z - x := sub_pos.2 (hxy.trans hyz)
     have ha : (z - y) / (z - x) = a :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab 
+      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     have hb : (y - x) / (z - x) = b :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add] at hab 
+      rw [eq_comm, ← sub_eq_iff_eq_add] at hab
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     rwa [sub_mul, sub_mul, sub_lt_iff_lt_add', ← add_sub_assoc, lt_sub_iff_add_lt, ← mul_add,
       sub_add_sub_cancel, ← lt_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
-      mul_comm (f z), ha, hb] at this 
+      mul_comm (f z), ha, hb] at this
 #align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacent
 -/
 
@@ -384,7 +384,7 @@ theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x
     (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
   by
   have key := hf.neg.secant_strict_mono ha hx hy hxa hya hxy
-  simp only [Pi.neg_apply] at key 
+  simp only [Pi.neg_apply] at key
   rw [← neg_lt_neg_iff]
   convert key using 1 <;> field_simp
 #align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_mono
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Yury Kudriashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
 -/
-import Mathbin.Analysis.Convex.Function
-import Mathbin.Tactic.FieldSimp
+import Analysis.Convex.Function
+import Tactic.FieldSimp
 import Mathbin.Tactic.Linarith.Default
 
 #align_import analysis.convex.slope from "leanprover-community/mathlib"@"a8b2226cfb0a79f5986492053fc49b1a0c6aeffb"
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Yury Kudriashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
-
-! This file was ported from Lean 3 source module analysis.convex.slope
-! leanprover-community/mathlib commit a8b2226cfb0a79f5986492053fc49b1a0c6aeffb
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Convex.Function
 import Mathbin.Tactic.FieldSimp
 import Mathbin.Tactic.Linarith.Default
 
+#align_import analysis.convex.slope from "leanprover-community/mathlib"@"a8b2226cfb0a79f5986492053fc49b1a0c6aeffb"
+
 /-!
 # Slopes of convex functions
 
Diff
@@ -27,6 +27,7 @@ The main use is to show convexity/concavity from monotonicity of the derivative.
 
 variable {π•œ : Type _} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’ π•œ}
 
+#print ConvexOn.slope_mono_adjacent /-
 /-- If `f : π•œ β†’ π•œ` is convex, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -50,7 +51,9 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   Β· linarith
   Β· nlinarith
 #align convex_on.slope_mono_adjacent ConvexOn.slope_mono_adjacent
+-/
 
+#print ConcaveOn.slope_anti_adjacent /-
 /-- If `f : π•œ β†’ π•œ` is concave, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -60,7 +63,9 @@ theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (
   simp_rw [← Pi.neg_apply, ← neg_div, neg_sub]
   exact ConvexOn.slope_mono_adjacent hf.neg hx hz hxy hyz
 #align concave_on.slope_anti_adjacent ConcaveOn.slope_anti_adjacent
+-/
 
+#print StrictConvexOn.slope_strict_mono_adjacent /-
 /-- If `f : π•œ β†’ π•œ` is strictly convex, then for any three points `x < y < z` the slope of the
 secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -86,7 +91,9 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   Β· linarith
   Β· nlinarith
 #align strict_convex_on.slope_strict_mono_adjacent StrictConvexOn.slope_strict_mono_adjacent
+-/
 
+#print StrictConcaveOn.slope_anti_adjacent /-
 /-- If `f : π•œ β†’ π•œ` is strictly concave, then for any three points `x < y < z` the slope of the
 secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -97,7 +104,9 @@ theorem StrictConcaveOn.slope_anti_adjacent (hf : StrictConcaveOn π•œ s f) {x y
   simp_rw [← Pi.neg_apply, ← neg_div, neg_sub]
   exact StrictConvexOn.slope_strict_mono_adjacent hf.neg hx hz hxy hyz
 #align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacent
+-/
 
+#print convexOn_of_slope_mono_adjacent /-
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 less than the slope of the secant line of `f` on `[x, z]`, then `f` is convex. -/
 theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
@@ -129,7 +138,9 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
       sub_add_sub_cancel, ← le_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
       mul_comm (f z), ha, hb] at this 
 #align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacent
+-/
 
+#print concaveOn_of_slope_anti_adjacent /-
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 greater than the slope of the secant line of `f` on `[x, z]`, then `f` is concave. -/
 theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
@@ -143,7 +154,9 @@ theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
   simp_rw [← neg_div, neg_sub, Pi.neg_apply, neg_sub_neg]
   exact hf hx hz hxy hyz
 #align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacent
+-/
 
+#print strictConvexOn_of_slope_strict_mono_adjacent /-
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly less than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly convex. -/
 theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
@@ -175,7 +188,9 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
       sub_add_sub_cancel, ← lt_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
       mul_comm (f z), ha, hb] at this 
 #align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacent
+-/
 
+#print strictConcaveOn_of_slope_strict_anti_adjacent /-
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly greater than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly concave.
 -/
@@ -190,7 +205,9 @@ theorem strictConcaveOn_of_slope_strict_anti_adjacent (hs : Convex π•œ s)
   simp_rw [← neg_div, neg_sub, Pi.neg_apply, neg_sub_neg]
   exact hf hx hz hxy hyz
 #align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacent
+-/
 
+#print convexOn_iff_slope_mono_adjacent /-
 /-- A function `f : π•œ β†’ π•œ` is convex iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem convexOn_iff_slope_mono_adjacent :
@@ -201,7 +218,9 @@ theorem convexOn_iff_slope_mono_adjacent :
   ⟨fun h => ⟨h.1, fun x y z => h.slope_mono_adjacent⟩, fun h =>
     convexOn_of_slope_mono_adjacent h.1 h.2⟩
 #align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacent
+-/
 
+#print concaveOn_iff_slope_anti_adjacent /-
 /-- A function `f : π•œ β†’ π•œ` is concave iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
 theorem concaveOn_iff_slope_anti_adjacent :
@@ -212,7 +231,9 @@ theorem concaveOn_iff_slope_anti_adjacent :
   ⟨fun h => ⟨h.1, fun x y z => h.slope_anti_adjacent⟩, fun h =>
     concaveOn_of_slope_anti_adjacent h.1 h.2⟩
 #align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacent
+-/
 
+#print strictConvexOn_iff_slope_strict_mono_adjacent /-
 /-- A function `f : π•œ β†’ π•œ` is strictly convex iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -224,7 +245,9 @@ theorem strictConvexOn_iff_slope_strict_mono_adjacent :
   ⟨fun h => ⟨h.1, fun x y z => h.slope_strict_mono_adjacent⟩, fun h =>
     strictConvexOn_of_slope_strict_mono_adjacent h.1 h.2⟩
 #align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacent
+-/
 
+#print strictConcaveOn_iff_slope_strict_anti_adjacent /-
 /-- A function `f : π•œ β†’ π•œ` is strictly concave iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -236,7 +259,9 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
   ⟨fun h => ⟨h.1, fun x y z => h.slope_anti_adjacent⟩, fun h =>
     strictConcaveOn_of_slope_strict_anti_adjacent h.1 h.2⟩
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
+-/
 
+#print ConvexOn.secant_mono_aux1 /-
 theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (z - x) * f y ≀ (z - y) * f x + (y - x) * f z :=
   by
@@ -256,7 +281,9 @@ theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
 #align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1
+-/
 
+#print ConvexOn.secant_mono_aux2 /-
 theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f x) / (z - x) :=
   by
@@ -265,7 +292,9 @@ theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   rw [div_le_div_iff hxy' hxz']
   linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
 #align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2
+-/
 
+#print ConvexOn.secant_mono_aux3 /-
 theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) ≀ (f z - f y) / (z - y) :=
   by
@@ -274,7 +303,9 @@ theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   rw [div_le_div_iff hxz' hyz']
   linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
 #align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3
+-/
 
+#print ConvexOn.secant_mono /-
 theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s)
     (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
     (f x - f a) / (x - a) ≀ (f y - f a) / (y - a) :=
@@ -288,7 +319,9 @@ theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈
       rw [← neg_div_neg_eq] <;> field_simp
   Β· exact hf.secant_mono_aux2 ha hy hxa hxy
 #align convex_on.secant_mono ConvexOn.secant_mono
+-/
 
+#print StrictConvexOn.secant_strict_mono_aux1 /-
 theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (z - x) * f y < (z - y) * f x + (y - x) * f z :=
   by
@@ -308,7 +341,9 @@ theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
 #align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1
+-/
 
+#print StrictConvexOn.secant_strict_mono_aux2 /-
 theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) < (f z - f x) / (z - x) :=
   by
@@ -317,7 +352,9 @@ theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x
   rw [div_lt_div_iff hxy' hxz']
   linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
 #align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2
+-/
 
+#print StrictConvexOn.secant_strict_mono_aux3 /-
 theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) < (f z - f y) / (z - y) :=
   by
@@ -326,7 +363,9 @@ theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x
   rw [div_lt_div_iff hxz' hyz']
   linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
 #align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3
+-/
 
+#print StrictConvexOn.secant_strict_mono /-
 theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
     (f x - f a) / (x - a) < (f y - f a) / (y - a) :=
@@ -340,7 +379,9 @@ theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y
       rw [← neg_div_neg_eq] <;> field_simp
   Β· exact hf.secant_strict_mono_aux2 ha hy hxa hxy
 #align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_mono
+-/
 
+#print StrictConcaveOn.secant_strict_mono /-
 theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
     (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
@@ -350,7 +391,9 @@ theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x
   rw [← neg_lt_neg_iff]
   convert key using 1 <;> field_simp
 #align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_mono
+-/
 
+#print ConvexOn.strict_mono_of_lt /-
 /-- If `f` is convex on a set `s` in a linearly ordered field, and `f x < f y` for two points
 `x < y` in `s`, then `f` is strictly monotone on `s ∩ [y, ∞)`. -/
 theorem ConvexOn.strict_mono_of_lt (hf : ConvexOn π•œ s f) {x y : π•œ} (hx : x ∈ s) (hxy : x < y)
@@ -371,4 +414,5 @@ theorem ConvexOn.strict_mono_of_lt (hf : ConvexOn π•œ s f) {x y : π•œ} (hx : x
     Β· rw [openSegment_eq_Ioo (hu2.trans huv)]
       exact ⟨hu2, huv⟩
 #align convex_on.strict_mono_of_lt ConvexOn.strict_mono_of_lt
+-/
 
Diff
@@ -250,7 +250,6 @@ theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
     f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := _
     _ ≀ (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz ha hb _)
     _ = ((z - y) * f x + (y - x) * f z) / (z - x) := _
-    
   Β· congr 1
     field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
     ring
@@ -303,7 +302,6 @@ theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x
     f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := _
     _ < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz (by linarith) ha hb _)
     _ = ((z - y) * f x + (y - x) * f z) / (z - x) := _
-    
   Β· congr 1
     field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
     ring
Diff
@@ -34,7 +34,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   by
   have hxz := hxy.trans hyz
   rw [← sub_pos] at hxy hxz hyz 
-  suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by ring_nf  at this ⊒;
+  suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by ring_nf at this ⊒;
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
@@ -45,7 +45,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
       (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring; linarith])
   rw [hy] at key 
   replace key := mul_le_mul_of_nonneg_left key hxz.le
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key ⊒
+  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
   rw [div_le_div_right]
   Β· linarith
   Β· nlinarith
@@ -71,7 +71,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   have hxz := hxy.trans hyz
   have hxz' := hxz.ne
   rw [← sub_pos] at hxy hxz hyz 
-  suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by ring_nf  at this ⊒;
+  suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by ring_nf at this ⊒;
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
@@ -81,7 +81,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
       (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring; linarith])
   rw [hy] at key 
   replace key := mul_lt_mul_of_pos_left key hxz
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key ⊒
+  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
   rw [div_lt_div_right]
   Β· linarith
   Β· nlinarith
Diff
@@ -33,19 +33,19 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
     (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f y) / (z - y) :=
   by
   have hxz := hxy.trans hyz
-  rw [← sub_pos] at hxy hxz hyz
-  suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by ring_nf  at this⊒;
+  rw [← sub_pos] at hxy hxz hyz 
+  suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by ring_nf  at this ⊒;
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by field_simp; rw [div_eq_iff] <;> [ring;linarith]
+  have hy : a β€’ x + b β€’ z = y := by field_simp; rw [div_eq_iff] <;> [ring; linarith]
   have key :=
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
-      (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring;linarith])
-  rw [hy] at key
+      (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring; linarith])
+  rw [hy] at key 
   replace key := mul_le_mul_of_nonneg_left key hxz.le
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
+  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key ⊒
   rw [div_le_div_right]
   Β· linarith
   Β· nlinarith
@@ -70,18 +70,18 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   by
   have hxz := hxy.trans hyz
   have hxz' := hxz.ne
-  rw [← sub_pos] at hxy hxz hyz
-  suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by ring_nf  at this⊒;
+  rw [← sub_pos] at hxy hxz hyz 
+  suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by ring_nf  at this ⊒;
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by field_simp; rw [div_eq_iff] <;> [ring;linarith]
+  have hy : a β€’ x + b β€’ z = y := by field_simp; rw [div_eq_iff] <;> [ring; linarith]
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
-      (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring;linarith])
-  rw [hy] at key
+      (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring; linarith])
+  rw [hy] at key 
   replace key := mul_lt_mul_of_pos_left key hxz
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
+  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key ⊒
   rw [div_lt_div_right]
   Β· linarith
   Β· nlinarith
@@ -119,15 +119,15 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
     have hxz : 0 < z - x := sub_pos.2 (hxy.trans hyz)
     have ha : (z - y) / (z - x) = a :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
+      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab 
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     have hb : (y - x) / (z - x) = b :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add] at hab
+      rw [eq_comm, ← sub_eq_iff_eq_add] at hab 
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     rwa [sub_mul, sub_mul, sub_le_iff_le_add', ← add_sub_assoc, le_sub_iff_add_le, ← mul_add,
       sub_add_sub_cancel, ← le_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
-      mul_comm (f z), ha, hb] at this
+      mul_comm (f z), ha, hb] at this 
 #align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacent
 
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
@@ -165,15 +165,15 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
     have hxz : 0 < z - x := sub_pos.2 (hxy.trans hyz)
     have ha : (z - y) / (z - x) = a :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
+      rw [eq_comm, ← sub_eq_iff_eq_add'] at hab 
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     have hb : (y - x) / (z - x) = b :=
       by
-      rw [eq_comm, ← sub_eq_iff_eq_add] at hab
+      rw [eq_comm, ← sub_eq_iff_eq_add] at hab 
       simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     rwa [sub_mul, sub_mul, sub_lt_iff_lt_add', ← add_sub_assoc, lt_sub_iff_add_lt, ← mul_add,
       sub_add_sub_cancel, ← lt_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
-      mul_comm (f z), ha, hb] at this
+      mul_comm (f z), ha, hb] at this 
 #align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacent
 
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
@@ -348,7 +348,7 @@ theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x
     (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
   by
   have key := hf.neg.secant_strict_mono ha hx hy hxa hya hxy
-  simp only [Pi.neg_apply] at key
+  simp only [Pi.neg_apply] at key 
   rw [← neg_lt_neg_iff]
   convert key using 1 <;> field_simp
 #align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_mono
Diff
@@ -27,12 +27,6 @@ The main use is to show convexity/concavity from monotonicity of the derivative.
 
 variable {π•œ : Type _} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’ π•œ}
 
-/- warning: convex_on.slope_mono_adjacent -> ConvexOn.slope_mono_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
-Case conversion may be inaccurate. Consider using '#align convex_on.slope_mono_adjacent ConvexOn.slope_mono_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is convex, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -57,12 +51,6 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   Β· nlinarith
 #align convex_on.slope_mono_adjacent ConvexOn.slope_mono_adjacent
 
-/- warning: concave_on.slope_anti_adjacent -> ConcaveOn.slope_anti_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x))))
-Case conversion may be inaccurate. Consider using '#align concave_on.slope_anti_adjacent ConcaveOn.slope_anti_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is concave, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -73,12 +61,6 @@ theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (
   exact ConvexOn.slope_mono_adjacent hf.neg hx hz hxy hyz
 #align concave_on.slope_anti_adjacent ConcaveOn.slope_anti_adjacent
 
-/- warning: strict_convex_on.slope_strict_mono_adjacent -> StrictConvexOn.slope_strict_mono_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.slope_strict_mono_adjacent StrictConvexOn.slope_strict_mono_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is strictly convex, then for any three points `x < y < z` the slope of the
 secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -105,12 +87,6 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   Β· nlinarith
 #align strict_convex_on.slope_strict_mono_adjacent StrictConvexOn.slope_strict_mono_adjacent
 
-/- warning: strict_concave_on.slope_anti_adjacent -> StrictConcaveOn.slope_anti_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x))))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is strictly concave, then for any three points `x < y < z` the slope of the
 secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -122,9 +98,6 @@ theorem StrictConcaveOn.slope_anti_adjacent (hf : StrictConcaveOn π•œ s f) {x y
   exact StrictConvexOn.slope_strict_mono_adjacent hf.neg hx hz hxy hyz
 #align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacent
 
-/- warning: convex_on_of_slope_mono_adjacent -> convexOn_of_slope_mono_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 less than the slope of the secant line of `f` on `[x, z]`, then `f` is convex. -/
 theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
@@ -157,9 +130,6 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
       mul_comm (f z), ha, hb] at this
 #align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacent
 
-/- warning: concave_on_of_slope_anti_adjacent -> concaveOn_of_slope_anti_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 greater than the slope of the secant line of `f` on `[x, z]`, then `f` is concave. -/
 theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
@@ -174,9 +144,6 @@ theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
   exact hf hx hz hxy hyz
 #align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacent
 
-/- warning: strict_convex_on_of_slope_strict_mono_adjacent -> strictConvexOn_of_slope_strict_mono_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly less than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly convex. -/
 theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
@@ -209,9 +176,6 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
       mul_comm (f z), ha, hb] at this
 #align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacent
 
-/- warning: strict_concave_on_of_slope_strict_anti_adjacent -> strictConcaveOn_of_slope_strict_anti_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly greater than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly concave.
 -/
@@ -227,9 +191,6 @@ theorem strictConcaveOn_of_slope_strict_anti_adjacent (hs : Convex π•œ s)
   exact hf hx hz hxy hyz
 #align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacent
 
-/- warning: convex_on_iff_slope_mono_adjacent -> convexOn_iff_slope_mono_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is convex iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem convexOn_iff_slope_mono_adjacent :
@@ -241,9 +202,6 @@ theorem convexOn_iff_slope_mono_adjacent :
     convexOn_of_slope_mono_adjacent h.1 h.2⟩
 #align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacent
 
-/- warning: concave_on_iff_slope_anti_adjacent -> concaveOn_iff_slope_anti_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is concave iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
 theorem concaveOn_iff_slope_anti_adjacent :
@@ -255,9 +213,6 @@ theorem concaveOn_iff_slope_anti_adjacent :
     concaveOn_of_slope_anti_adjacent h.1 h.2⟩
 #align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacent
 
-/- warning: strict_convex_on_iff_slope_strict_mono_adjacent -> strictConvexOn_iff_slope_strict_mono_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is strictly convex iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -270,9 +225,6 @@ theorem strictConvexOn_iff_slope_strict_mono_adjacent :
     strictConvexOn_of_slope_strict_mono_adjacent h.1 h.2⟩
 #align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacent
 
-/- warning: strict_concave_on_iff_slope_strict_anti_adjacent -> strictConcaveOn_iff_slope_strict_anti_adjacent is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is strictly concave iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -285,9 +237,6 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
     strictConcaveOn_of_slope_strict_anti_adjacent h.1 h.2⟩
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
 
-/- warning: convex_on.secant_mono_aux1 -> ConvexOn.secant_mono_aux1 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1β‚“'. -/
 theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (z - x) * f y ≀ (z - y) * f x + (y - x) * f z :=
   by
@@ -309,12 +258,6 @@ theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
 #align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1
 
-/- warning: convex_on.secant_mono_aux2 -> ConvexOn.secant_mono_aux2 is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x))))
-Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2β‚“'. -/
 theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f x) / (z - x) :=
   by
@@ -324,12 +267,6 @@ theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
 #align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2
 
-/- warning: convex_on.secant_mono_aux3 -> ConvexOn.secant_mono_aux3 is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
-Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3β‚“'. -/
 theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) ≀ (f z - f y) / (z - y) :=
   by
@@ -339,9 +276,6 @@ theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
 #align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3
 
-/- warning: convex_on.secant_mono -> ConvexOn.secant_mono is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono ConvexOn.secant_monoβ‚“'. -/
 theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s)
     (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
     (f x - f a) / (x - a) ≀ (f y - f a) / (y - a) :=
@@ -356,9 +290,6 @@ theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈
   Β· exact hf.secant_mono_aux2 ha hy hxa hxy
 #align convex_on.secant_mono ConvexOn.secant_mono
 
-/- warning: strict_convex_on.secant_strict_mono_aux1 -> StrictConvexOn.secant_strict_mono_aux1 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (z - x) * f y < (z - y) * f x + (y - x) * f z :=
   by
@@ -380,12 +311,6 @@ theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
 #align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1
 
-/- warning: strict_convex_on.secant_strict_mono_aux2 -> StrictConvexOn.secant_strict_mono_aux2 is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x))))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) < (f z - f x) / (z - x) :=
   by
@@ -395,12 +320,6 @@ theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x
   linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
 #align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2
 
-/- warning: strict_convex_on.secant_strict_mono_aux3 -> StrictConvexOn.secant_strict_mono_aux3 is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) < (f z - f y) / (z - y) :=
   by
@@ -410,9 +329,6 @@ theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x
   linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
 #align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3
 
-/- warning: strict_convex_on.secant_strict_mono -> StrictConvexOn.secant_strict_mono is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_monoβ‚“'. -/
 theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
     (f x - f a) / (x - a) < (f y - f a) / (y - a) :=
@@ -427,9 +343,6 @@ theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y
   Β· exact hf.secant_strict_mono_aux2 ha hy hxa hxy
 #align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_mono
 
-/- warning: strict_concave_on.secant_strict_mono -> StrictConcaveOn.secant_strict_mono is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_monoβ‚“'. -/
 theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
     (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
@@ -440,12 +353,6 @@ theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x
   convert key using 1 <;> field_simp
 #align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_mono
 
-/- warning: convex_on.strict_mono_of_lt -> ConvexOn.strict_mono_of_lt is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x 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) -> (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))))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.hasInter.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.instInterSet.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) y))))
-Case conversion may be inaccurate. Consider using '#align convex_on.strict_mono_of_lt ConvexOn.strict_mono_of_ltβ‚“'. -/
 /-- If `f` is convex on a set `s` in a linearly ordered field, and `f x < f y` for two points
 `x < y` in `s`, then `f` is strictly monotone on `s ∩ [y, ∞)`. -/
 theorem ConvexOn.strict_mono_of_lt (hf : ConvexOn π•œ s f) {x y : π•œ} (hx : x ∈ s) (hxy : x < y)
Diff
@@ -40,21 +40,15 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   by
   have hxz := hxy.trans hyz
   rw [← sub_pos] at hxy hxz hyz
-  suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y)
-    by
-    ring_nf  at this⊒
+  suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by ring_nf  at this⊒;
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by
-    field_simp
-    rw [div_eq_iff] <;> [ring;linarith]
+  have hy : a β€’ x + b β€’ z = y := by field_simp; rw [div_eq_iff] <;> [ring;linarith]
   have key :=
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
-      (show a + b = 1 by
-        field_simp
-        rw [div_eq_iff] <;> [ring;linarith])
+      (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring;linarith])
   rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
@@ -95,20 +89,14 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   have hxz := hxy.trans hyz
   have hxz' := hxz.ne
   rw [← sub_pos] at hxy hxz hyz
-  suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y)
-    by
-    ring_nf  at this⊒
+  suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by ring_nf  at this⊒;
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by
-    field_simp
-    rw [div_eq_iff] <;> [ring;linarith]
+  have hy : a β€’ x + b β€’ z = y := by field_simp; rw [div_eq_iff] <;> [ring;linarith]
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
-      (show a + b = 1 by
-        field_simp
-        rw [div_eq_iff] <;> [ring;linarith])
+      (show a + b = 1 by field_simp; rw [div_eq_iff] <;> [ring;linarith])
   rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
@@ -159,13 +147,11 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
     have ha : (z - y) / (z - x) = a :=
       by
       rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
-      simp_rw [div_eq_iff hxz.ne', y, ← hab]
-      ring
+      simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     have hb : (y - x) / (z - x) = b :=
       by
       rw [eq_comm, ← sub_eq_iff_eq_add] at hab
-      simp_rw [div_eq_iff hxz.ne', y, ← hab]
-      ring
+      simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     rwa [sub_mul, sub_mul, sub_le_iff_le_add', ← add_sub_assoc, le_sub_iff_add_le, ← mul_add,
       sub_add_sub_cancel, ← le_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
       mul_comm (f z), ha, hb] at this
@@ -213,13 +199,11 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
     have ha : (z - y) / (z - x) = a :=
       by
       rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
-      simp_rw [div_eq_iff hxz.ne', y, ← hab]
-      ring
+      simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     have hb : (y - x) / (z - x) = b :=
       by
       rw [eq_comm, ← sub_eq_iff_eq_add] at hab
-      simp_rw [div_eq_iff hxz.ne', y, ← hab]
-      ring
+      simp_rw [div_eq_iff hxz.ne', y, ← hab]; ring
     rwa [sub_mul, sub_mul, sub_lt_iff_lt_add', ← add_sub_assoc, lt_sub_iff_add_lt, ← mul_add,
       sub_add_sub_cancel, ← lt_div_iff hxz, add_div, mul_div_assoc, mul_div_assoc, mul_comm (f x),
       mul_comm (f z), ha, hb] at this
Diff
@@ -135,10 +135,7 @@ theorem StrictConcaveOn.slope_anti_adjacent (hf : StrictConcaveOn π•œ s f) {x y
 #align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacent
 
 /- warning: convex_on_of_slope_mono_adjacent -> convexOn_of_slope_mono_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 less than the slope of the secant line of `f` on `[x, z]`, then `f` is convex. -/
@@ -175,10 +172,7 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
 #align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacent
 
 /- warning: concave_on_of_slope_anti_adjacent -> concaveOn_of_slope_anti_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 greater than the slope of the secant line of `f` on `[x, z]`, then `f` is concave. -/
@@ -195,10 +189,7 @@ theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
 #align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacent
 
 /- warning: strict_convex_on_of_slope_strict_mono_adjacent -> strictConvexOn_of_slope_strict_mono_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly less than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly convex. -/
@@ -235,10 +226,7 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
 #align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacent
 
 /- warning: strict_concave_on_of_slope_strict_anti_adjacent -> strictConcaveOn_of_slope_strict_anti_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly greater than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly concave.
@@ -256,10 +244,7 @@ theorem strictConcaveOn_of_slope_strict_anti_adjacent (hs : Convex π•œ s)
 #align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacent
 
 /- warning: convex_on_iff_slope_mono_adjacent -> convexOn_iff_slope_mono_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is convex iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
@@ -273,10 +258,7 @@ theorem convexOn_iff_slope_mono_adjacent :
 #align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacent
 
 /- warning: concave_on_iff_slope_anti_adjacent -> concaveOn_iff_slope_anti_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is concave iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
@@ -290,10 +272,7 @@ theorem concaveOn_iff_slope_anti_adjacent :
 #align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacent
 
 /- warning: strict_convex_on_iff_slope_strict_mono_adjacent -> strictConvexOn_iff_slope_strict_mono_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is strictly convex iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
@@ -308,10 +287,7 @@ theorem strictConvexOn_iff_slope_strict_mono_adjacent :
 #align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacent
 
 /- warning: strict_concave_on_iff_slope_strict_anti_adjacent -> strictConcaveOn_iff_slope_strict_anti_adjacent is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is strictly concave iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
@@ -326,10 +302,7 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
 
 /- warning: convex_on.secant_mono_aux1 -> ConvexOn.secant_mono_aux1 is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toHasAdd.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x) (f z)))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toAdd.{u1} π•œ (NonUnitalNonAssocSemiring.toDistrib.{u1} π•œ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x) (f z)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1β‚“'. -/
 theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (z - x) * f y ≀ (z - y) * f x + (y - x) * f z :=
@@ -383,10 +356,7 @@ theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
 #align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3
 
 /- warning: convex_on.secant_mono -> ConvexOn.secant_mono is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) a s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y 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))))))) 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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y a))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) a s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y a) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y a))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono ConvexOn.secant_monoβ‚“'. -/
 theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s)
     (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
@@ -403,10 +373,7 @@ theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈
 #align convex_on.secant_mono ConvexOn.secant_mono
 
 /- warning: strict_convex_on.secant_strict_mono_aux1 -> StrictConvexOn.secant_strict_mono_aux1 is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toHasAdd.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x) (f z)))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toAdd.{u1} π•œ (NonUnitalNonAssocSemiring.toDistrib.{u1} π•œ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x) (f z)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (z - x) * f y < (z - y) * f x + (y - x) * f z :=
@@ -460,10 +427,7 @@ theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x
 #align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3
 
 /- warning: strict_convex_on.secant_strict_mono -> StrictConvexOn.secant_strict_mono is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) a s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y 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))))))) 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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y a))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) a s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y a) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y a))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_monoβ‚“'. -/
 theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
@@ -480,10 +444,7 @@ theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y
 #align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_mono
 
 /- warning: strict_concave_on.secant_strict_mono -> StrictConcaveOn.secant_strict_mono is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) a s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y 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))))))) 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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) x a))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) a s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y a) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x a))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_monoβ‚“'. -/
 theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
Diff
@@ -325,6 +325,12 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
     strictConcaveOn_of_slope_strict_anti_adjacent h.1 h.2⟩
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
 
+/- warning: convex_on.secant_mono_aux1 -> ConvexOn.secant_mono_aux1 is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toHasAdd.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x) (f z)))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toAdd.{u1} π•œ (NonUnitalNonAssocSemiring.toDistrib.{u1} π•œ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x) (f z)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1β‚“'. -/
 theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (z - x) * f y ≀ (z - y) * f x + (y - x) * f z :=
   by
@@ -346,6 +352,12 @@ theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
 #align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1
 
+/- warning: convex_on.secant_mono_aux2 -> ConvexOn.secant_mono_aux2 is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x))))
+Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2β‚“'. -/
 theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f x) / (z - x) :=
   by
@@ -355,6 +367,12 @@ theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
 #align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2
 
+/- warning: convex_on.secant_mono_aux3 -> ConvexOn.secant_mono_aux3 is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
+Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3β‚“'. -/
 theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
     (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) ≀ (f z - f y) / (z - y) :=
   by
@@ -364,6 +382,12 @@ theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
   linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
 #align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3
 
+/- warning: convex_on.secant_mono -> ConvexOn.secant_mono is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) a s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y 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))))))) 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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y a))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) a s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y a) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y a))))
+Case conversion may be inaccurate. Consider using '#align convex_on.secant_mono ConvexOn.secant_monoβ‚“'. -/
 theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s)
     (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
     (f x - f a) / (x - a) ≀ (f y - f a) / (y - a) :=
@@ -378,6 +402,12 @@ theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈
   Β· exact hf.secant_mono_aux2 ha hy hxa hxy
 #align convex_on.secant_mono ConvexOn.secant_mono
 
+/- warning: strict_convex_on.secant_strict_mono_aux1 -> StrictConvexOn.secant_strict_mono_aux1 is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toHasAdd.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x) (f z)))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x) (f y)) (HAdd.hAdd.{u1, u1, u1} π•œ π•œ π•œ (instHAdd.{u1} π•œ (Distrib.toAdd.{u1} π•œ (NonUnitalNonAssocSemiring.toDistrib.{u1} π•œ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))))) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y) (f x)) (HMul.hMul.{u1, u1, u1} π•œ π•œ π•œ (instHMul.{u1} π•œ (NonUnitalNonAssocRing.toMul.{u1} π•œ (NonAssocRing.toNonUnitalNonAssocRing.{u1} π•œ (Ring.toNonAssocRing.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x) (f z)))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (z - x) * f y < (z - y) * f x + (y - x) * f z :=
   by
@@ -399,6 +429,12 @@ theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x
   Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
 #align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1
 
+/- warning: strict_convex_on.secant_strict_mono_aux2 -> StrictConvexOn.secant_strict_mono_aux2 is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) < (f z - f x) / (z - x) :=
   by
@@ -408,6 +444,12 @@ theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x
   linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
 #align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2
 
+/- warning: strict_convex_on.secant_strict_mono_aux3 -> StrictConvexOn.secant_strict_mono_aux3 is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3β‚“'. -/
 theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
     (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) < (f z - f y) / (z - y) :=
   by
@@ -417,6 +459,12 @@ theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x
   linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
 #align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3
 
+/- warning: strict_convex_on.secant_strict_mono -> StrictConvexOn.secant_strict_mono is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) a s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y 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))))))) 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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y a))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) a s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y a) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y a))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_monoβ‚“'. -/
 theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
     (f x - f a) / (x - a) < (f y - f a) / (y - a) :=
@@ -431,6 +479,12 @@ theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y
   Β· exact hf.secant_strict_mono_aux2 ha hy hxa hxy
 #align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_mono
 
+/- warning: strict_concave_on.secant_strict_mono -> StrictConcaveOn.secant_strict_mono is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) a s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x s) -> (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y 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))))))) 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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) x a))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {a : π•œ} {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) a s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) y s) -> (Ne.{succ u1} π•œ x a) -> (Ne.{succ u1} π•œ y a) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y a)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f a)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x a))))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_monoβ‚“'. -/
 theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
     (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
     (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
Diff
@@ -48,13 +48,13 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   set b := (y - x) / (z - x)
   have hy : a β€’ x + b β€’ z = y := by
     field_simp
-    rw [div_eq_iff] <;> [ring, linarith]
+    rw [div_eq_iff] <;> [ring;linarith]
   have key :=
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
       (show a + b = 1 by
         field_simp
-        rw [div_eq_iff] <;> [ring, linarith])
+        rw [div_eq_iff] <;> [ring;linarith])
   rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
@@ -103,12 +103,12 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   set b := (y - x) / (z - x)
   have hy : a β€’ x + b β€’ z = y := by
     field_simp
-    rw [div_eq_iff] <;> [ring, linarith]
+    rw [div_eq_iff] <;> [ring;linarith]
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
       (show a + b = 1 by
         field_simp
-        rw [div_eq_iff] <;> [ring, linarith])
+        rw [div_eq_iff] <;> [ring;linarith])
   rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
 
 ! This file was ported from Lean 3 source module analysis.convex.slope
-! leanprover-community/mathlib commit 814d76e2247d5ba8bc024843552da1278bfe9e5c
+! leanprover-community/mathlib commit a8b2226cfb0a79f5986492053fc49b1a0c6aeffb
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -325,6 +325,122 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
     strictConcaveOn_of_slope_strict_anti_adjacent h.1 h.2⟩
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
 
+theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
+    (hxy : x < y) (hyz : y < z) : (z - x) * f y ≀ (z - y) * f x + (y - x) * f z :=
+  by
+  have hxy' : 0 < y - x := by linarith
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [← le_div_iff' hxz']
+  have ha : 0 ≀ (z - y) / (z - x) := by positivity
+  have hb : 0 ≀ (y - x) / (z - x) := by positivity
+  calc
+    f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := _
+    _ ≀ (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz ha hb _)
+    _ = ((z - y) * f x + (y - x) * f z) / (z - x) := _
+    
+  Β· congr 1
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    ring
+  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+#align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1
+
+theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
+    (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f x) / (z - x) :=
+  by
+  have hxy' : 0 < y - x := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_le_div_iff hxy' hxz']
+  linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
+#align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2
+
+theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
+    (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) ≀ (f z - f y) / (z - y) :=
+  by
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_le_div_iff hxz' hyz']
+  linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
+#align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3
+
+theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s)
+    (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
+    (f x - f a) / (x - a) ≀ (f y - f a) / (y - a) :=
+  by
+  rcases eq_or_lt_of_le hxy with (rfl | hxy)
+  Β· simp
+  cases' lt_or_gt_of_ne hxa with hxa hxa
+  Β· cases' lt_or_gt_of_ne hya with hya hya
+    Β· convert hf.secant_mono_aux3 hx ha hxy hya using 1 <;> rw [← neg_div_neg_eq] <;> field_simp
+    Β· convert hf.slope_mono_adjacent hx hy hxa hya using 1
+      rw [← neg_div_neg_eq] <;> field_simp
+  Β· exact hf.secant_mono_aux2 ha hy hxa hxy
+#align convex_on.secant_mono ConvexOn.secant_mono
+
+theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
+    (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (z - x) * f y < (z - y) * f x + (y - x) * f z :=
+  by
+  have hxy' : 0 < y - x := by linarith
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [← lt_div_iff' hxz']
+  have ha : 0 < (z - y) / (z - x) := by positivity
+  have hb : 0 < (y - x) / (z - x) := by positivity
+  calc
+    f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := _
+    _ < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz (by linarith) ha hb _)
+    _ = ((z - y) * f x + (y - x) * f z) / (z - x) := _
+    
+  Β· congr 1
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    ring
+  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+#align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1
+
+theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
+    (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) < (f z - f x) / (z - x) :=
+  by
+  have hxy' : 0 < y - x := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_lt_div_iff hxy' hxz']
+  linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
+#align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2
+
+theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
+    (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) < (f z - f y) / (z - y) :=
+  by
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_lt_div_iff hxz' hyz']
+  linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
+#align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3
+
+theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
+    (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
+    (f x - f a) / (x - a) < (f y - f a) / (y - a) :=
+  by
+  cases' lt_or_gt_of_ne hxa with hxa hxa
+  Β· cases' lt_or_gt_of_ne hya with hya hya
+    Β·
+      convert hf.secant_strict_mono_aux3 hx ha hxy hya using 1 <;> rw [← neg_div_neg_eq] <;>
+        field_simp
+    Β· convert hf.slope_strict_mono_adjacent hx hy hxa hya using 1
+      rw [← neg_div_neg_eq] <;> field_simp
+  Β· exact hf.secant_strict_mono_aux2 ha hy hxa hxy
+#align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_mono
+
+theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
+    (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
+    (f y - f a) / (y - a) < (f x - f a) / (x - a) :=
+  by
+  have key := hf.neg.secant_strict_mono ha hx hy hxa hya hxy
+  simp only [Pi.neg_apply] at key
+  rw [← neg_lt_neg_iff]
+  convert key using 1 <;> field_simp
+#align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_mono
+
 /- warning: convex_on.strict_mono_of_lt -> ConvexOn.strict_mono_of_lt is a dubious translation:
 lean 3 declaration is
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x 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) -> (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))))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.hasInter.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y))))
Diff
@@ -29,7 +29,7 @@ variable {π•œ : Type _} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’
 
 /- warning: convex_on.slope_mono_adjacent -> ConvexOn.slope_mono_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
 Case conversion may be inaccurate. Consider using '#align convex_on.slope_mono_adjacent ConvexOn.slope_mono_adjacentβ‚“'. -/
@@ -65,7 +65,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
 
 /- warning: concave_on.slope_anti_adjacent -> ConcaveOn.slope_anti_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x))))
 Case conversion may be inaccurate. Consider using '#align concave_on.slope_anti_adjacent ConcaveOn.slope_anti_adjacentβ‚“'. -/
@@ -81,7 +81,7 @@ theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (
 
 /- warning: strict_convex_on.slope_strict_mono_adjacent -> StrictConvexOn.slope_strict_mono_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
 Case conversion may be inaccurate. Consider using '#align strict_convex_on.slope_strict_mono_adjacent StrictConvexOn.slope_strict_mono_adjacentβ‚“'. -/
@@ -119,7 +119,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
 
 /- warning: strict_concave_on.slope_anti_adjacent -> StrictConcaveOn.slope_anti_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x))))
 Case conversion may be inaccurate. Consider using '#align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacentβ‚“'. -/
@@ -136,7 +136,7 @@ theorem StrictConcaveOn.slope_anti_adjacent (hf : StrictConcaveOn π•œ s f) {x y
 
 /- warning: convex_on_of_slope_mono_adjacent -> convexOn_of_slope_mono_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
 Case conversion may be inaccurate. Consider using '#align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacentβ‚“'. -/
@@ -176,7 +176,7 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
 
 /- warning: concave_on_of_slope_anti_adjacent -> concaveOn_of_slope_anti_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
 Case conversion may be inaccurate. Consider using '#align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacentβ‚“'. -/
@@ -196,7 +196,7 @@ theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
 
 /- warning: strict_convex_on_of_slope_strict_mono_adjacent -> strictConvexOn_of_slope_strict_mono_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
 Case conversion may be inaccurate. Consider using '#align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacentβ‚“'. -/
@@ -236,7 +236,7 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
 
 /- warning: strict_concave_on_of_slope_strict_anti_adjacent -> strictConcaveOn_of_slope_strict_anti_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
 Case conversion may be inaccurate. Consider using '#align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacentβ‚“'. -/
@@ -257,7 +257,7 @@ theorem strictConcaveOn_of_slope_strict_anti_adjacent (hs : Convex π•œ s)
 
 /- warning: convex_on_iff_slope_mono_adjacent -> convexOn_iff_slope_mono_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))))
 Case conversion may be inaccurate. Consider using '#align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacentβ‚“'. -/
@@ -274,7 +274,7 @@ theorem convexOn_iff_slope_mono_adjacent :
 
 /- warning: concave_on_iff_slope_anti_adjacent -> concaveOn_iff_slope_anti_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toHasLe.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))))
 Case conversion may be inaccurate. Consider using '#align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacentβ‚“'. -/
@@ -291,7 +291,7 @@ theorem concaveOn_iff_slope_anti_adjacent :
 
 /- warning: strict_convex_on_iff_slope_strict_mono_adjacent -> strictConvexOn_iff_slope_strict_mono_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))))
 Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacentβ‚“'. -/
@@ -309,7 +309,7 @@ theorem strictConvexOn_iff_slope_strict_mono_adjacent :
 
 /- warning: strict_concave_on_iff_slope_strict_anti_adjacent -> strictConcaveOn_iff_slope_strict_anti_adjacent is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))))
 Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacentβ‚“'. -/
@@ -327,7 +327,7 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
 
 /- warning: convex_on.strict_mono_of_lt -> ConvexOn.strict_mono_of_lt is a dubious translation:
 lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x 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) -> (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))))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.hasInter.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y))))
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x 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) -> (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))))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.hasInter.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y))))
 but is expected to have type
   forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.instInterSet.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) y))))
 Case conversion may be inaccurate. Consider using '#align convex_on.strict_mono_of_lt ConvexOn.strict_mono_of_ltβ‚“'. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
 
 ! This file was ported from Lean 3 source module analysis.convex.slope
-! leanprover-community/mathlib commit 78261225eb5cedc61c5c74ecb44e5b385d13b733
+! leanprover-community/mathlib commit 814d76e2247d5ba8bc024843552da1278bfe9e5c
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Tactic.Linarith.Default
 /-!
 # Slopes of convex functions
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file relates convexity/concavity of functions in a linearly ordered field and the monotonicity
 of their slopes.
 
Diff
@@ -24,6 +24,12 @@ The main use is to show convexity/concavity from monotonicity of the derivative.
 
 variable {π•œ : Type _} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’ π•œ}
 
+/- warning: convex_on.slope_mono_adjacent -> ConvexOn.slope_mono_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
+Case conversion may be inaccurate. Consider using '#align convex_on.slope_mono_adjacent ConvexOn.slope_mono_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is convex, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -54,6 +60,12 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   Β· nlinarith
 #align convex_on.slope_mono_adjacent ConvexOn.slope_mono_adjacent
 
+/- warning: concave_on.slope_anti_adjacent -> ConcaveOn.slope_anti_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x))))
+Case conversion may be inaccurate. Consider using '#align concave_on.slope_anti_adjacent ConcaveOn.slope_anti_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is concave, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -64,6 +76,12 @@ theorem ConcaveOn.slope_anti_adjacent (hf : ConcaveOn π•œ s f) {x y z : π•œ} (
   exact ConvexOn.slope_mono_adjacent hf.neg hx hz hxy hyz
 #align concave_on.slope_anti_adjacent ConcaveOn.slope_anti_adjacent
 
+/- warning: strict_convex_on.slope_strict_mono_adjacent -> StrictConvexOn.slope_strict_mono_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.slope_strict_mono_adjacent StrictConvexOn.slope_strict_mono_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is strictly convex, then for any three points `x < y < z` the slope of the
 secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -96,6 +114,12 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   Β· nlinarith
 #align strict_convex_on.slope_strict_mono_adjacent StrictConvexOn.slope_strict_mono_adjacent
 
+/- warning: strict_concave_on.slope_anti_adjacent -> StrictConcaveOn.slope_anti_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x))))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacentβ‚“'. -/
 /-- If `f : π•œ β†’ π•œ` is strictly concave, then for any three points `x < y < z` the slope of the
 secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -107,6 +131,12 @@ theorem StrictConcaveOn.slope_anti_adjacent (hf : StrictConcaveOn π•œ s f) {x y
   exact StrictConvexOn.slope_strict_mono_adjacent hf.neg hx hz hxy hyz
 #align strict_concave_on.slope_anti_adjacent StrictConcaveOn.slope_anti_adjacent
 
+/- warning: convex_on_of_slope_mono_adjacent -> convexOn_of_slope_mono_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))) -> (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+Case conversion may be inaccurate. Consider using '#align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 less than the slope of the secant line of `f` on `[x, z]`, then `f` is convex. -/
 theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
@@ -141,6 +171,12 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
       mul_comm (f z), ha, hb] at this
 #align convex_on_of_slope_mono_adjacent convexOn_of_slope_mono_adjacent
 
+/- warning: concave_on_of_slope_anti_adjacent -> concaveOn_of_slope_anti_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))) -> (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+Case conversion may be inaccurate. Consider using '#align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 greater than the slope of the secant line of `f` on `[x, z]`, then `f` is concave. -/
 theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
@@ -155,6 +191,12 @@ theorem concaveOn_of_slope_anti_adjacent (hs : Convex π•œ s)
   exact hf hx hz hxy hyz
 #align concave_on_of_slope_anti_adjacent concaveOn_of_slope_anti_adjacent
 
+/- warning: strict_convex_on_of_slope_strict_mono_adjacent -> strictConvexOn_of_slope_strict_mono_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))) -> (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+Case conversion may be inaccurate. Consider using '#align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly less than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly convex. -/
 theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
@@ -189,6 +231,12 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
       mul_comm (f z), ha, hb] at this
 #align strict_convex_on_of_slope_strict_mono_adjacent strictConvexOn_of_slope_strict_mono_adjacent
 
+/- warning: strict_concave_on_of_slope_strict_anti_adjacent -> strictConcaveOn_of_slope_strict_anti_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f)
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) -> (forall {x : π•œ} {y : π•œ} {z : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))) -> (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f)
+Case conversion may be inaccurate. Consider using '#align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacentβ‚“'. -/
 /-- If for any three points `x < y < z`, the slope of the secant line of `f : π•œ β†’ π•œ` on `[x, y]` is
 strictly greater than the slope of the secant line of `f` on `[x, z]`, then `f` is strictly concave.
 -/
@@ -204,6 +252,12 @@ theorem strictConcaveOn_of_slope_strict_anti_adjacent (hs : Convex π•œ s)
   exact hf hx hz hxy hyz
 #align strict_concave_on_of_slope_strict_anti_adjacent strictConcaveOn_of_slope_strict_anti_adjacent
 
+/- warning: convex_on_iff_slope_mono_adjacent -> convexOn_iff_slope_mono_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))))
+Case conversion may be inaccurate. Consider using '#align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is convex iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem convexOn_iff_slope_mono_adjacent :
@@ -215,6 +269,12 @@ theorem convexOn_iff_slope_mono_adjacent :
     convexOn_of_slope_mono_adjacent h.1 h.2⟩
 #align convex_on_iff_slope_mono_adjacent convexOn_iff_slope_mono_adjacent
 
+/- warning: concave_on_iff_slope_anti_adjacent -> concaveOn_iff_slope_anti_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (ConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LE.le.{u1} π•œ (Preorder.toLE.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))))
+Case conversion may be inaccurate. Consider using '#align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is concave iff for any three points `x < y < z` the slope of the secant
 line of `f` on `[x, y]` is greater than the slope of the secant line of `f` on `[x, z]`. -/
 theorem concaveOn_iff_slope_anti_adjacent :
@@ -226,6 +286,12 @@ theorem concaveOn_iff_slope_anti_adjacent :
     concaveOn_of_slope_anti_adjacent h.1 h.2⟩
 #align concave_on_iff_slope_anti_adjacent concaveOn_iff_slope_anti_adjacent
 
+/- warning: strict_convex_on_iff_slope_strict_mono_adjacent -> strictConvexOn_iff_slope_strict_mono_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is strictly convex iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly less than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -238,6 +304,12 @@ theorem strictConvexOn_iff_slope_strict_mono_adjacent :
     strictConvexOn_of_slope_strict_mono_adjacent h.1 h.2⟩
 #align strict_convex_on_iff_slope_strict_mono_adjacent strictConvexOn_iff_slope_strict_mono_adjacent
 
+/- warning: strict_concave_on_iff_slope_strict_anti_adjacent -> strictConcaveOn_iff_slope_strict_anti_adjacent is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (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)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (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) -> (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) -> (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))))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (DivInvMonoid.toHasDiv.{u1} π•œ (DivisionRing.toDivInvMonoid.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (SubNegMonoid.toHasSub.{u1} π•œ (AddGroup.toSubNegMonoid.{u1} π•œ (AddGroupWithOne.toAddGroup.{u1} π•œ (AddCommGroupWithOne.toAddGroupWithOne.{u1} π•œ (Ring.toAddCommGroupWithOne.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1))))))))) y x)))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, Iff (StrictConcaveOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) (And (Convex.{u1, u1} π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s) (forall {{x : π•œ}} {{y : π•œ}} {{z : π•œ}}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) z s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y z) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f z) (f y)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) z y)) (HDiv.hDiv.{u1, u1, u1} π•œ π•œ π•œ (instHDiv.{u1} π•œ (LinearOrderedField.toDiv.{u1} π•œ _inst_1)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f y) (f x)) (HSub.hSub.{u1, u1, u1} π•œ π•œ π•œ (instHSub.{u1} π•œ (Ring.toSub.{u1} π•œ (StrictOrderedRing.toRing.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y x)))))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacentβ‚“'. -/
 /-- A function `f : π•œ β†’ π•œ` is strictly concave iff for any three points `x < y < z` the slope of
 the secant line of `f` on `[x, y]` is strictly greater than the slope of the secant line of `f` on
 `[x, z]`. -/
@@ -250,6 +322,12 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
     strictConcaveOn_of_slope_strict_anti_adjacent h.1 h.2⟩
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
 
+/- warning: convex_on.strict_mono_of_lt -> ConvexOn.strict_mono_of_lt is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (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)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedRing.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) (Mul.toSMul.{u1} π•œ (Distrib.toHasMul.{u1} π•œ (Ring.toDistrib.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ (LinearOrderedField.toField.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.Mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.hasMem.{u1} π•œ) x 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) -> (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))))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.hasInter.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (OrderedAddCommGroup.toPartialOrder.{u1} π•œ (StrictOrderedRing.toOrderedAddCommGroup.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) y))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π•œ] {s : Set.{u1} π•œ} {f : π•œ -> π•œ}, (ConvexOn.{u1, u1, u1} π•œ π•œ π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} π•œ (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (OrderedSemiring.toOrderedAddCommMonoid.{u1} π•œ (OrderedCommSemiring.toOrderedSemiring.{u1} π•œ (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) (Algebra.toSMul.{u1, u1} π•œ π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} π•œ (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} π•œ (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1))))) (Algebra.id.{u1} π•œ (StrictOrderedCommSemiring.toCommSemiring.{u1} π•œ (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π•œ (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π•œ (LinearOrderedField.toLinearOrderedSemifield.{u1} π•œ _inst_1)))))) s f) -> (forall {x : π•œ} {y : π•œ}, (Membership.mem.{u1, u1} π•œ (Set.{u1} π•œ) (Set.instMembershipSet.{u1} π•œ) x s) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) x y) -> (LT.lt.{u1} π•œ (Preorder.toLT.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1)))))) (f x) (f y)) -> (StrictMonoOn.{u1, u1} π•œ π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) f (Inter.inter.{u1} (Set.{u1} π•œ) (Set.instInterSet.{u1} π•œ) s (Set.Ici.{u1} π•œ (PartialOrder.toPreorder.{u1} π•œ (StrictOrderedRing.toPartialOrder.{u1} π•œ (LinearOrderedRing.toStrictOrderedRing.{u1} π•œ (LinearOrderedCommRing.toLinearOrderedRing.{u1} π•œ (LinearOrderedField.toLinearOrderedCommRing.{u1} π•œ _inst_1))))) y))))
+Case conversion may be inaccurate. Consider using '#align convex_on.strict_mono_of_lt ConvexOn.strict_mono_of_ltβ‚“'. -/
 /-- If `f` is convex on a set `s` in a linearly ordered field, and `f x < f y` for two points
 `x < y` in `s`, then `f` is strictly monotone on `s ∩ [y, ∞)`. -/
 theorem ConvexOn.strict_mono_of_lt (hf : ConvexOn π•œ s f) {x y : π•œ} (hx : x ∈ s) (hxy : x < y)
Diff
@@ -4,12 +4,13 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
 
 ! This file was ported from Lean 3 source module analysis.convex.slope
-! leanprover-community/mathlib commit 0ee3e6f52678a420c58b1072870fed5e0240c083
+! leanprover-community/mathlib commit 78261225eb5cedc61c5c74ecb44e5b385d13b733
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Convex.Function
 import Mathbin.Tactic.FieldSimp
+import Mathbin.Tactic.Linarith.Default
 
 /-!
 # Slopes of convex functions

Changes in mathlib4

mathlib3
mathlib4
chore: superfluous parentheses part 2 (#12131)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -293,7 +293,7 @@ theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x
   have hb : 0 < (y - x) / (z - x) := by positivity
   calc
     f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := ?_
-    _ < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz (by linarith) ha hb ?_)
+    _ < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := hf.2 hx hz (by linarith) ha hb ?_
     _ = ((z - y) * f x + (y - x) * f z) / (z - x) := ?_
   Β· congr 1
     field_simp
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -18,9 +18,12 @@ of their slopes.
 The main use is to show convexity/concavity from monotonicity of the derivative.
 -/
 
-
 variable {π•œ : Type*} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’ π•œ}
 
+-- Adaptation note: after v4.7.0-rc1, there is a performance problem in `field_simp`.
+-- (Part of the code was ignoring the `maxDischargeDepth` setting: now that we have to increase it,
+-- other paths becomes slow.)
+set_option maxHeartbeats 400000 in
 /-- If `f : π•œ β†’ π•œ` is convex, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
 theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -32,14 +32,14 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by field_simp; ring
+  have hy : a β€’ x + b β€’ z = y := by field_simp [a, b]; ring
   have key :=
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
-      (show a + b = 1 by field_simp)
+      (show a + b = 1 by field_simp [a, b])
   rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
-  field_simp [mul_comm (z - x) _] at key ⊒
+  field_simp [a, b, mul_comm (z - x) _] at key ⊒
   rw [div_le_div_right]
   Β· linarith
   Β· nlinarith
@@ -68,10 +68,10 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by field_simp; ring
+  have hy : a β€’ x + b β€’ z = y := by field_simp [a, b]; ring
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
-      (show a + b = 1 by field_simp)
+      (show a + b = 1 by field_simp [a, b])
   rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
   field_simp [mul_comm (z - x) _] at key ⊒
@@ -110,10 +110,12 @@ theorem convexOn_of_slope_mono_adjacent (hs : Convex π•œ s)
     have hxz : 0 < z - x := sub_pos.2 (hxy.trans hyz)
     have ha : (z - y) / (z - x) = a := by
       rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
+      dsimp [y]
       simp_rw [div_eq_iff hxz.ne', ← hab]
       ring
     have hb : (y - x) / (z - x) = b := by
       rw [eq_comm, ← sub_eq_iff_eq_add] at hab
+      dsimp [y]
       simp_rw [div_eq_iff hxz.ne', ← hab]
       ring
     rwa [sub_mul, sub_mul, sub_le_iff_le_add', ← add_sub_assoc, le_sub_iff_add_le, ← mul_add,
@@ -155,10 +157,12 @@ theorem strictConvexOn_of_slope_strict_mono_adjacent (hs : Convex π•œ s)
     have hxz : 0 < z - x := sub_pos.2 (hxy.trans hyz)
     have ha : (z - y) / (z - x) = a := by
       rw [eq_comm, ← sub_eq_iff_eq_add'] at hab
+      dsimp [y]
       simp_rw [div_eq_iff hxz.ne', ← hab]
       ring
     have hb : (y - x) / (z - x) = b := by
       rw [eq_comm, ← sub_eq_iff_eq_add] at hab
+      dsimp [y]
       simp_rw [div_eq_iff hxz.ne', ← hab]
       ring
     rwa [sub_mul, sub_mul, sub_lt_iff_lt_add', ← add_sub_assoc, lt_sub_iff_add_lt, ← mul_add,
field_simp: Use positivity as a discharger (#6312)

The main reasons is that having h : 0 < denom in the context should suffice for field_simp to do its job, without the need to manually pass h.ne or similar.

Quite a few have := … β‰  0 could be dropped, and some field_simp calls no longer need explicit arguments; this is promising.

This does break some proofs where field_simp was not used as a closing tactic, and it now shuffles terms around a bit different. These were fixed. Using field_simp in the middle of a proof seems rather fragile anyways.

As a drive-by contribution, positivity now knows about Ο€ > 0.

fixes: #4835

Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -32,18 +32,14 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by
-    field_simp
-    rw [div_eq_iff] <;> [ring; linarith]
+  have hy : a β€’ x + b β€’ z = y := by field_simp; ring
   have key :=
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
-      (show a + b = 1 by
-        field_simp
-        rw [div_eq_iff] <;> [ring; linarith])
+      (show a + b = 1 by field_simp)
   rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
+  field_simp [mul_comm (z - x) _] at key ⊒
   rw [div_le_div_right]
   Β· linarith
   Β· nlinarith
@@ -72,17 +68,13 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
-  have hy : a β€’ x + b β€’ z = y := by
-    field_simp
-    rw [div_eq_iff] <;> [ring; linarith]
+  have hy : a β€’ x + b β€’ z = y := by field_simp; ring
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
-      (show a + b = 1 by
-        field_simp
-        rw [div_eq_iff] <;> [ring; linarith])
+      (show a + b = 1 by field_simp)
   rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
+  field_simp [mul_comm (z - x) _] at key ⊒
   rw [div_lt_div_right]
   Β· linarith
   Β· nlinarith
@@ -247,12 +239,12 @@ theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx :
     _ ≀ (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := hf.2 hx hz ha hb ?_
     _ = ((z - y) * f x + (y - x) * f z) / (z - x) := ?_
   Β· congr 1
-    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    field_simp
     ring
   Β· -- Porting note: this `show` wasn't needed in Lean 3
     show (z - y) / (z - x) + (y - x) / (z - x) = 1
-    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
-  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    field_simp
+  Β· field_simp
 #align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1
 
 theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
@@ -297,12 +289,12 @@ theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x
     _ < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz (by linarith) ha hb ?_)
     _ = ((z - y) * f x + (y - x) * f z) / (z - x) := ?_
   Β· congr 1
-    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    field_simp
     ring
   Β· -- Porting note: this `show` wasn't needed in Lean 3
     show (z - y) / (z - x) + (y - x) / (z - x) = 1
-    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
-  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    field_simp
+  Β· field_simp
 #align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1
 
 theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -19,7 +19,7 @@ The main use is to show convexity/concavity from monotonicity of the derivative.
 -/
 
 
-variable {π•œ : Type _} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’ π•œ}
+variable {π•œ : Type*} [LinearOrderedField π•œ] {s : Set π•œ} {f : π•œ β†’ π•œ}
 
 /-- If `f : π•œ β†’ π•œ` is convex, then for any three points `x < y < z` the slope of the secant line of
 `f` on `[x, y]` is less than the slope of the secant line of `f` on `[x, z]`. -/
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Yury Kudriashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
-
-! This file was ported from Lean 3 source module analysis.convex.slope
-! leanprover-community/mathlib commit a8b2226cfb0a79f5986492053fc49b1a0c6aeffb
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Convex.Function
 import Mathlib.Tactic.FieldSimp
 import Mathlib.Tactic.Linarith
 
+#align_import analysis.convex.slope from "leanprover-community/mathlib"@"a8b2226cfb0a79f5986492053fc49b1a0c6aeffb"
+
 /-!
 # Slopes of convex functions
 
chore: clean up spacing around 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
Diff
@@ -31,7 +31,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   have hxz := hxy.trans hyz
   rw [← sub_pos] at hxy hxz hyz
   suffices f y / (y - x) + f y / (z - y) ≀ f x / (y - x) + f z / (z - y) by
-    ring_nf  at this⊒
+    ring_nf at this ⊒
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
@@ -46,7 +46,7 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
         rw [div_eq_iff] <;> [ring; linarith])
   rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
+  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
   rw [div_le_div_right]
   Β· linarith
   Β· nlinarith
@@ -71,7 +71,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   have hxz' := hxz.ne
   rw [← sub_pos] at hxy hxz hyz
   suffices f y / (y - x) + f y / (z - y) < f x / (y - x) + f z / (z - y) by
-    ring_nf  at this⊒
+    ring_nf at this ⊒
     linarith
   set a := (z - y) / (z - x)
   set b := (y - x) / (z - x)
@@ -85,7 +85,7 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
         rw [div_eq_iff] <;> [ring; linarith])
   rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
-  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
+  field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _] at key ⊒
   rw [div_lt_div_right]
   Β· linarith
   Β· nlinarith
chore: forward-port #19026 (#4129)

Fiddly, not done yet ... help welcome.

Cross-reference: https://github.com/leanprover-community/mathlib/pull/19026.

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, Malo JaffrΓ©
 
 ! This file was ported from Lean 3 source module analysis.convex.slope
-! leanprover-community/mathlib commit 78261225eb5cedc61c5c74ecb44e5b385d13b733
+! leanprover-community/mathlib commit a8b2226cfb0a79f5986492053fc49b1a0c6aeffb
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -237,6 +237,114 @@ theorem strictConcaveOn_iff_slope_strict_anti_adjacent :
     strictConcaveOn_of_slope_strict_anti_adjacent h.1 (@fun _ _ _ hx hy => h.2 hx hy)⟩
 #align strict_concave_on_iff_slope_strict_anti_adjacent strictConcaveOn_iff_slope_strict_anti_adjacent
 
+theorem ConvexOn.secant_mono_aux1 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
+    (hxy : x < y) (hyz : y < z) : (z - x) * f y ≀ (z - y) * f x + (y - x) * f z := by
+  have hxy' : 0 < y - x := by linarith
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [← le_div_iff' hxz']
+  have ha : 0 ≀ (z - y) / (z - x) := by positivity
+  have hb : 0 ≀ (y - x) / (z - x) := by positivity
+  calc
+    f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := ?_
+    _ ≀ (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := hf.2 hx hz ha hb ?_
+    _ = ((z - y) * f x + (y - x) * f z) / (z - x) := ?_
+  Β· congr 1
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    ring
+  Β· -- Porting note: this `show` wasn't needed in Lean 3
+    show (z - y) / (z - x) + (y - x) / (z - x) = 1
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+#align convex_on.secant_mono_aux1 ConvexOn.secant_mono_aux1
+
+theorem ConvexOn.secant_mono_aux2 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
+    (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) ≀ (f z - f x) / (z - x) := by
+  have hxy' : 0 < y - x := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_le_div_iff hxy' hxz']
+  linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
+#align convex_on.secant_mono_aux2 ConvexOn.secant_mono_aux2
+
+theorem ConvexOn.secant_mono_aux3 (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s) (hz : z ∈ s)
+    (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) ≀ (f z - f y) / (z - y) := by
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_le_div_iff hxz' hyz']
+  linarith only [hf.secant_mono_aux1 hx hz hxy hyz]
+#align convex_on.secant_mono_aux3 ConvexOn.secant_mono_aux3
+
+theorem ConvexOn.secant_mono (hf : ConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s) (hx : x ∈ s)
+    (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x ≀ y) :
+    (f x - f a) / (x - a) ≀ (f y - f a) / (y - a) := by
+  rcases eq_or_lt_of_le hxy with (rfl | hxy)
+  Β· simp
+  cases' lt_or_gt_of_ne hxa with hxa hxa
+  Β· cases' lt_or_gt_of_ne hya with hya hya
+    Β· convert hf.secant_mono_aux3 hx ha hxy hya using 1 <;> rw [← neg_div_neg_eq] <;> field_simp
+    Β· convert hf.slope_mono_adjacent hx hy hxa hya using 1
+      rw [← neg_div_neg_eq]; field_simp
+  Β· exact hf.secant_mono_aux2 ha hy hxa hxy
+#align convex_on.secant_mono ConvexOn.secant_mono
+
+theorem StrictConvexOn.secant_strict_mono_aux1 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
+    (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (z - x) * f y < (z - y) * f x + (y - x) * f z := by
+  have hxy' : 0 < y - x := by linarith
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [← lt_div_iff' hxz']
+  have ha : 0 < (z - y) / (z - x) := by positivity
+  have hb : 0 < (y - x) / (z - x) := by positivity
+  calc
+    f y = f ((z - y) / (z - x) * x + (y - x) / (z - x) * z) := ?_
+    _ < (z - y) / (z - x) * f x + (y - x) / (z - x) * f z := (hf.2 hx hz (by linarith) ha hb ?_)
+    _ = ((z - y) * f x + (y - x) * f z) / (z - x) := ?_
+  Β· congr 1
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+    ring
+  Β· -- Porting note: this `show` wasn't needed in Lean 3
+    show (z - y) / (z - x) + (y - x) / (z - x) = 1
+    field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+  Β· field_simp [hxy'.ne', hyz'.ne', hxz'.ne']
+#align strict_convex_on.secant_strict_mono_aux1 StrictConvexOn.secant_strict_mono_aux1
+
+theorem StrictConvexOn.secant_strict_mono_aux2 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
+    (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f y - f x) / (y - x) < (f z - f x) / (z - x) := by
+  have hxy' : 0 < y - x := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_lt_div_iff hxy' hxz']
+  linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
+#align strict_convex_on.secant_strict_mono_aux2 StrictConvexOn.secant_strict_mono_aux2
+
+theorem StrictConvexOn.secant_strict_mono_aux3 (hf : StrictConvexOn π•œ s f) {x y z : π•œ} (hx : x ∈ s)
+    (hz : z ∈ s) (hxy : x < y) (hyz : y < z) : (f z - f x) / (z - x) < (f z - f y) / (z - y) := by
+  have hyz' : 0 < z - y := by linarith
+  have hxz' : 0 < z - x := by linarith
+  rw [div_lt_div_iff hxz' hyz']
+  linarith only [hf.secant_strict_mono_aux1 hx hz hxy hyz]
+#align strict_convex_on.secant_strict_mono_aux3 StrictConvexOn.secant_strict_mono_aux3
+
+theorem StrictConvexOn.secant_strict_mono (hf : StrictConvexOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
+    (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
+    (f x - f a) / (x - a) < (f y - f a) / (y - a) := by
+  cases' lt_or_gt_of_ne hxa with hxa hxa
+  Β· cases' lt_or_gt_of_ne hya with hya hya
+    Β· convert hf.secant_strict_mono_aux3 hx ha hxy hya using 1 <;> rw [← neg_div_neg_eq] <;>
+        field_simp
+    Β· convert hf.slope_strict_mono_adjacent hx hy hxa hya using 1
+      rw [← neg_div_neg_eq]; field_simp
+  Β· exact hf.secant_strict_mono_aux2 ha hy hxa hxy
+#align strict_convex_on.secant_strict_mono StrictConvexOn.secant_strict_mono
+
+theorem StrictConcaveOn.secant_strict_mono (hf : StrictConcaveOn π•œ s f) {a x y : π•œ} (ha : a ∈ s)
+    (hx : x ∈ s) (hy : y ∈ s) (hxa : x β‰  a) (hya : y β‰  a) (hxy : x < y) :
+    (f y - f a) / (y - a) < (f x - f a) / (x - a) := by
+  have key := hf.neg.secant_strict_mono ha hx hy hxa hya hxy
+  simp only [Pi.neg_apply] at key
+  rw [← neg_lt_neg_iff]
+  convert key using 1 <;> field_simp <;> ring
+#align strict_concave_on.secant_strict_mono StrictConcaveOn.secant_strict_mono
+
 /-- If `f` is convex on a set `s` in a linearly ordered field, and `f x < f y` for two points
 `x < y` in `s`, then `f` is strictly monotone on `s ∩ [y, ∞)`. -/
 theorem ConvexOn.strict_mono_of_lt (hf : ConvexOn π•œ s f) {x y : π•œ} (hx : x ∈ s) (hxy : x < y)
chore: update std 05-22 (#4248)

The main breaking change is that tac <;> [t1, t2] is now written tac <;> [t1; t2], to avoid clashing with tactics like cases and use that take comma-separated lists.

Diff
@@ -37,13 +37,13 @@ theorem ConvexOn.slope_mono_adjacent (hf : ConvexOn π•œ s f) {x y z : π•œ} (hx
   set b := (y - x) / (z - x)
   have hy : a β€’ x + b β€’ z = y := by
     field_simp
-    rw [div_eq_iff] <;> [ring, linarith]
+    rw [div_eq_iff] <;> [ring; linarith]
   have key :=
     hf.2 hx hz (show 0 ≀ a by apply div_nonneg <;> linarith)
       (show 0 ≀ b by apply div_nonneg <;> linarith)
       (show a + b = 1 by
         field_simp
-        rw [div_eq_iff] <;> [ring, linarith])
+        rw [div_eq_iff] <;> [ring; linarith])
   rw [hy] at key
   replace key := mul_le_mul_of_nonneg_left key hxz.le
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
@@ -77,12 +77,12 @@ theorem StrictConvexOn.slope_strict_mono_adjacent (hf : StrictConvexOn π•œ s f)
   set b := (y - x) / (z - x)
   have hy : a β€’ x + b β€’ z = y := by
     field_simp
-    rw [div_eq_iff] <;> [ring, linarith]
+    rw [div_eq_iff] <;> [ring; linarith]
   have key :=
     hf.2 hx hz hxz' (div_pos hyz hxz) (div_pos hxy hxz)
       (show a + b = 1 by
         field_simp
-        rw [div_eq_iff] <;> [ring, linarith])
+        rw [div_eq_iff] <;> [ring; linarith])
   rw [hy] at key
   replace key := mul_lt_mul_of_pos_left key hxz
   field_simp [hxy.ne', hyz.ne', hxz.ne', mul_comm (z - x) _]  at key⊒
feat: port Analysis.Convex.Slope (#3374)

Dependencies 9 + 421

422 files ported (97.9%)
173825 lines ported (98.1%)
Show graph

The unported dependencies are