analysis.convex.hull ⟷ Mathlib.Analysis.Convex.Hull

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)

(last sync)

feat(analysis/convex): convexity of n-ary sums (#18943)
Diff
@@ -101,6 +101,9 @@ lemma segment_subset_convex_hull (hx : x ∈ s) (hy : y ∈ s) : segment π•œ x
 @[simp] lemma convex_hull_singleton (x : E) : convex_hull π•œ ({x} : set E) = {x} :=
 (convex_singleton x).convex_hull_eq
 
+@[simp] lemma convex_hull_zero : convex_hull π•œ (0 : set E) = 0 :=
+convex_hull_singleton 0
+
 @[simp] lemma convex_hull_pair (x y : E) : convex_hull π•œ {x, y} = segment π•œ x y :=
 begin
   refine (convex_hull_min _ $ convex_segment _ _).antisymm

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -198,7 +198,7 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
   by
   constructor
   Β· rintro hsx hx
-    rw [hsx.convex_hull_eq] at hx 
+    rw [hsx.convex_hull_eq] at hx
     exact hx.2 (mem_singleton _)
   rintro hx
   suffices h : s \ {x} = convexHull π•œ (s \ {x}); Β· convert convex_convexHull π•œ _
@@ -208,8 +208,8 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
 #align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_remove
 -/
 
-#print IsLinearMap.convexHull_image /-
-theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
+#print IsLinearMap.image_convexHull /-
+theorem IsLinearMap.image_convexHull {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   Set.Subset.antisymm
     (convexHull_min (image_subset _ (subset_convexHull π•œ s)) <|
@@ -217,14 +217,14 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
     (image_subset_iff.2 <|
       convexHull_min (image_subset_iff.1 <| subset_convexHull π•œ _)
         ((convex_convexHull π•œ _).is_linear_preimage hf))
-#align is_linear_map.convex_hull_image IsLinearMap.convexHull_image
+#align is_linear_map.convex_hull_image IsLinearMap.image_convexHull
 -/
 
-#print LinearMap.convexHull_image /-
-theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
+#print LinearMap.image_convexHull /-
+theorem LinearMap.image_convexHull (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
-  f.isLinear.convexHull_image s
-#align linear_map.convex_hull_image LinearMap.convexHull_image
+  f.isLinear.image_convexHull s
+#align linear_map.convex_hull_image LinearMap.image_convexHull
 -/
 
 end AddCommMonoid
@@ -237,7 +237,7 @@ variable [OrderedCommSemiring π•œ] [AddCommMonoid E] [Module π•œ E]
 
 #print convexHull_smul /-
 theorem convexHull_smul (a : π•œ) (s : Set E) : convexHull π•œ (a β€’ s) = a β€’ convexHull π•œ s :=
-  (LinearMap.lsmul _ _ a).convexHull_image _
+  (LinearMap.lsmul _ _ a).image_convexHull _
 #align convex_hull_smul convexHull_smul
 -/
 
Diff
@@ -44,7 +44,7 @@ variable (π•œ) [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ
 #print convexHull /-
 /-- The convex hull of a set `s` is the minimal convex set that includes `s`. -/
 def convexHull : ClosureOperator (Set E) :=
-  ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t) (Convex π•œ)
+  ClosureOperator.ofPred (fun s => β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t) (Convex π•œ)
     (fun s =>
       Set.subset_iInter fun t => Set.subset_iInter fun hst => Set.subset_iInter fun ht => hst)
     (fun s => convex_iInter fun t => convex_iInter fun ht => convex_iInter id) fun s t hst ht =>
@@ -62,7 +62,7 @@ theorem subset_convexHull : s βŠ† convexHull π•œ s :=
 
 #print convex_convexHull /-
 theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
-  ClosureOperator.closure_mem_mk₃ s
+  ClosureOperator.closure_mem_ofPred s
 #align convex_convex_hull convex_convexHull
 -/
 
@@ -82,7 +82,7 @@ theorem mem_convexHull_iff : x ∈ convexHull π•œ s ↔ βˆ€ t, s βŠ† t β†’ Conv
 
 #print convexHull_min /-
 theorem convexHull_min (hst : s βŠ† t) (ht : Convex π•œ t) : convexHull π•œ s βŠ† t :=
-  ClosureOperator.closure_le_mk₃_iff (show s ≀ t from hst) ht
+  ClosureOperator.closure_le_ofPred_iff (show s ≀ t from hst) ht
 #align convex_hull_min convexHull_min
 -/
 
@@ -101,7 +101,7 @@ theorem convexHull_mono (hst : s βŠ† t) : convexHull π•œ s βŠ† convexHull π•œ
 
 #print Convex.convexHull_eq /-
 theorem Convex.convexHull_eq (hs : Convex π•œ s) : convexHull π•œ s = s :=
-  ClosureOperator.mem_mk₃_closed hs
+  ClosureOperator.ofPred_isClosed hs
 #align convex.convex_hull_eq Convex.convexHull_eq
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Yury Kudriashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, YaΓ«l Dillies
 -/
-import Mathbin.Analysis.Convex.Basic
-import Mathbin.Order.Closure
+import Analysis.Convex.Basic
+import Order.Closure
 
 #align_import analysis.convex.hull from "leanprover-community/mathlib"@"92bd7b1ffeb306a89f450bee126ddd8a284c259d"
 
Diff
@@ -141,7 +141,7 @@ theorem convexHull_nonempty_iff : (convexHull π•œ s).Nonempty ↔ s.Nonempty :=
 #align convex_hull_nonempty_iff convexHull_nonempty_iff
 -/
 
-alias convexHull_nonempty_iff ↔ _ Set.Nonempty.convexHull
+alias ⟨_, Set.Nonempty.convexHull⟩ := convexHull_nonempty_iff
 #align set.nonempty.convex_hull Set.Nonempty.convexHull
 
 attribute [protected] Set.Nonempty.convexHull
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Yury Kudriashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, YaΓ«l Dillies
-
-! This file was ported from Lean 3 source module analysis.convex.hull
-! leanprover-community/mathlib commit 92bd7b1ffeb306a89f450bee126ddd8a284c259d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Convex.Basic
 import Mathbin.Order.Closure
 
+#align_import analysis.convex.hull from "leanprover-community/mathlib"@"92bd7b1ffeb306a89f450bee126ddd8a284c259d"
+
 /-!
 # Convex hull
 
Diff
@@ -162,10 +162,12 @@ theorem convexHull_singleton (x : E) : convexHull π•œ ({x} : Set E) = {x} :=
 #align convex_hull_singleton convexHull_singleton
 -/
 
+#print convexHull_zero /-
 @[simp]
 theorem convexHull_zero : convexHull π•œ (0 : Set E) = 0 :=
   convexHull_singleton 0
 #align convex_hull_zero convexHull_zero
+-/
 
 #print convexHull_pair /-
 @[simp]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, YaΓ«l Dillies
 
 ! This file was ported from Lean 3 source module analysis.convex.hull
-! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
+! leanprover-community/mathlib commit 92bd7b1ffeb306a89f450bee126ddd8a284c259d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -162,6 +162,11 @@ theorem convexHull_singleton (x : E) : convexHull π•œ ({x} : Set E) = {x} :=
 #align convex_hull_singleton convexHull_singleton
 -/
 
+@[simp]
+theorem convexHull_zero : convexHull π•œ (0 : Set E) = 0 :=
+  convexHull_singleton 0
+#align convex_hull_zero convexHull_zero
+
 #print convexHull_pair /-
 @[simp]
 theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y :=
Diff
@@ -44,6 +44,7 @@ section AddCommMonoid
 
 variable (π•œ) [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ F]
 
+#print convexHull /-
 /-- The convex hull of a set `s` is the minimal convex set that includes `s`. -/
 def convexHull : ClosureOperator (Set E) :=
   ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t) (Convex π•œ)
@@ -52,6 +53,7 @@ def convexHull : ClosureOperator (Set E) :=
     (fun s => convex_iInter fun t => convex_iInter fun ht => convex_iInter id) fun s t hst ht =>
     Set.iInter_subset_of_subset t <| Set.iInter_subset_of_subset hst <| Set.iInter_subset _ ht
 #align convex_hull convexHull
+-/
 
 variable (s : Set E)
 
@@ -61,9 +63,11 @@ theorem subset_convexHull : s βŠ† convexHull π•œ s :=
 #align subset_convex_hull subset_convexHull
 -/
 
+#print convex_convexHull /-
 theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
   ClosureOperator.closure_mem_mk₃ s
 #align convex_convex_hull convex_convexHull
+-/
 
 #print convexHull_eq_iInter /-
 theorem convexHull_eq_iInter : convexHull π•œ s = β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t :=
@@ -85,9 +89,11 @@ theorem convexHull_min (hst : s βŠ† t) (ht : Convex π•œ t) : convexHull π•œ s
 #align convex_hull_min convexHull_min
 -/
 
+#print Convex.convexHull_subset_iff /-
 theorem Convex.convexHull_subset_iff (ht : Convex π•œ t) : convexHull π•œ s βŠ† t ↔ s βŠ† t :=
   ⟨(subset_convexHull _ _).trans, fun h => convexHull_min h ht⟩
 #align convex.convex_hull_subset_iff Convex.convexHull_subset_iff
+-/
 
 #print convexHull_mono /-
 @[mono]
@@ -96,9 +102,11 @@ theorem convexHull_mono (hst : s βŠ† t) : convexHull π•œ s βŠ† convexHull π•œ
 #align convex_hull_mono convexHull_mono
 -/
 
+#print Convex.convexHull_eq /-
 theorem Convex.convexHull_eq (hs : Convex π•œ s) : convexHull π•œ s = s :=
   ClosureOperator.mem_mk₃_closed hs
 #align convex.convex_hull_eq Convex.convexHull_eq
+-/
 
 #print convexHull_univ /-
 @[simp]
@@ -166,16 +174,21 @@ theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y :=
 #align convex_hull_pair convexHull_pair
 -/
 
+#print convexHull_convexHull_union_left /-
 theorem convexHull_convexHull_union_left (s t : Set E) :
     convexHull π•œ (convexHull π•œ s βˆͺ t) = convexHull π•œ (s βˆͺ t) :=
   ClosureOperator.closure_sup_closure_left _ _ _
 #align convex_hull_convex_hull_union_left convexHull_convexHull_union_left
+-/
 
+#print convexHull_convexHull_union_right /-
 theorem convexHull_convexHull_union_right (s t : Set E) :
     convexHull π•œ (s βˆͺ convexHull π•œ t) = convexHull π•œ (s βˆͺ t) :=
   ClosureOperator.closure_sup_closure_right _ _ _
 #align convex_hull_convex_hull_union_right convexHull_convexHull_union_right
+-/
 
+#print Convex.convex_remove_iff_not_mem_convexHull_remove /-
 theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Convex π•œ s) (x : E) :
     Convex π•œ (s \ {x}) ↔ x βˆ‰ convexHull π•œ (s \ {x}) :=
   by
@@ -189,7 +202,9 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
     subset.antisymm (subset_convexHull π•œ _) fun y hy =>
       ⟨convexHull_min (diff_subset _ _) hs hy, by rintro (rfl : y = x); exact hx hy⟩
 #align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_remove
+-/
 
+#print IsLinearMap.convexHull_image /-
 theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   Set.Subset.antisymm
@@ -199,11 +214,14 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
       convexHull_min (image_subset_iff.1 <| subset_convexHull π•œ _)
         ((convex_convexHull π•œ _).is_linear_preimage hf))
 #align is_linear_map.convex_hull_image IsLinearMap.convexHull_image
+-/
 
+#print LinearMap.convexHull_image /-
 theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   f.isLinear.convexHull_image s
 #align linear_map.convex_hull_image LinearMap.convexHull_image
+-/
 
 end AddCommMonoid
 
@@ -229,6 +247,7 @@ section AddCommGroup
 
 variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s : Set E)
 
+#print AffineMap.image_convexHull /-
 theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
   by
   apply Set.Subset.antisymm
@@ -241,6 +260,7 @@ theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ
       convexHull_min (Set.image_subset _ (subset_convexHull π•œ s))
         ((convex_convexHull π•œ s).affine_image f)
 #align affine_map.image_convex_hull AffineMap.image_convexHull
+-/
 
 #print convexHull_subset_affineSpan /-
 theorem convexHull_subset_affineSpan : convexHull π•œ s βŠ† (affineSpan π•œ s : Set E) :=
@@ -258,9 +278,11 @@ theorem affineSpan_convexHull : affineSpan π•œ (convexHull π•œ s) = affineSpan
 #align affine_span_convex_hull affineSpan_convexHull
 -/
 
+#print convexHull_neg /-
 theorem convexHull_neg (s : Set E) : convexHull π•œ (-s) = -convexHull π•œ s := by
   simp_rw [← image_neg]; exact (AffineMap.image_convexHull _ <| -1).symm
 #align convex_hull_neg convexHull_neg
+-/
 
 end AddCommGroup
 
Diff
@@ -181,7 +181,7 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
   by
   constructor
   Β· rintro hsx hx
-    rw [hsx.convex_hull_eq] at hx
+    rw [hsx.convex_hull_eq] at hx 
     exact hx.2 (mem_singleton _)
   rintro hx
   suffices h : s \ {x} = convexHull π•œ (s \ {x}); Β· convert convex_convexHull π•œ _
Diff
@@ -30,7 +30,7 @@ while the impact on writing code is minimal as `convex_hull π•œ s` is automatic
 
 open Set
 
-open Pointwise
+open scoped Pointwise
 
 variable {π•œ E F : Type _}
 
Diff
@@ -44,12 +44,6 @@ section AddCommMonoid
 
 variable (π•œ) [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ F]
 
-/- warning: convex_hull -> convexHull is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2], ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))
-but is expected to have type
-  forall (π•œ : Type.{u1}) {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2], ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E)))))))
-Case conversion may be inaccurate. Consider using '#align convex_hull convexHullβ‚“'. -/
 /-- The convex hull of a set `s` is the minimal convex set that includes `s`. -/
 def convexHull : ClosureOperator (Set E) :=
   ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t) (Convex π•œ)
@@ -67,12 +61,6 @@ theorem subset_convexHull : s βŠ† convexHull π•œ s :=
 #align subset_convex_hull subset_convexHull
 -/
 
-/- warning: convex_convex_hull -> convex_convexHull is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E), Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s)
-but is expected to have type
-  forall (π•œ : Type.{u2}) {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π•œ] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2] (s : Set.{u1} E), Convex.{u2, u1} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π•œ E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π•œ E (MonoidWithZero.toZero.{u2} π•œ (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π•œ E (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2 _inst_4)))) (OrderHom.toFun.{u1, u1} (Set.{u1} E) (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (convexHull.{u2, u1} π•œ E _inst_1 _inst_2 _inst_4)) s)
-Case conversion may be inaccurate. Consider using '#align convex_convex_hull convex_convexHullβ‚“'. -/
 theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
   ClosureOperator.closure_mem_mk₃ s
 #align convex_convex_hull convex_convexHull
@@ -97,12 +85,6 @@ theorem convexHull_min (hst : s βŠ† t) (ht : Convex π•œ t) : convexHull π•œ s
 #align convex_hull_min convexHull_min
 -/
 
-/- warning: convex.convex_hull_subset_iff -> Convex.convexHull_subset_iff is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E} {t : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) t) -> (Iff (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s) t) (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t))
-but is expected to have type
-  forall {π•œ : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π•œ] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2] {s : Set.{u1} E} {t : Set.{u1} E}, (Convex.{u2, u1} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π•œ E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π•œ E (MonoidWithZero.toZero.{u2} π•œ (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π•œ E (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2 _inst_4)))) t) -> (Iff (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (OrderHom.toFun.{u1, u1} (Set.{u1} E) (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (convexHull.{u2, u1} π•œ E _inst_1 _inst_2 _inst_4)) s) t) (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) s t))
-Case conversion may be inaccurate. Consider using '#align convex.convex_hull_subset_iff Convex.convexHull_subset_iffβ‚“'. -/
 theorem Convex.convexHull_subset_iff (ht : Convex π•œ t) : convexHull π•œ s βŠ† t ↔ s βŠ† t :=
   ⟨(subset_convexHull _ _).trans, fun h => convexHull_min h ht⟩
 #align convex.convex_hull_subset_iff Convex.convexHull_subset_iff
@@ -114,12 +96,6 @@ theorem convexHull_mono (hst : s βŠ† t) : convexHull π•œ s βŠ† convexHull π•œ
 #align convex_hull_mono convexHull_mono
 -/
 
-/- warning: convex.convex_hull_eq -> Convex.convexHull_eq is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s) s)
-but is expected to have type
-  forall {π•œ : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π•œ] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2] {s : Set.{u1} E}, (Convex.{u2, u1} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π•œ E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π•œ E (MonoidWithZero.toZero.{u2} π•œ (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π•œ E (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (Eq.{succ u1} (Set.{u1} E) (OrderHom.toFun.{u1, u1} (Set.{u1} E) (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (convexHull.{u2, u1} π•œ E _inst_1 _inst_2 _inst_4)) s) s)
-Case conversion may be inaccurate. Consider using '#align convex.convex_hull_eq Convex.convexHull_eqβ‚“'. -/
 theorem Convex.convexHull_eq (hs : Convex π•œ s) : convexHull π•œ s = s :=
   ClosureOperator.mem_mk₃_closed hs
 #align convex.convex_hull_eq Convex.convexHull_eq
@@ -190,34 +166,16 @@ theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y :=
 #align convex_hull_pair convexHull_pair
 -/
 
-/- warning: convex_hull_convex_hull_union_left -> convexHull_convexHull_union_left is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s) t)) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) s t))
-but is expected to have type
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) s) t)) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) s t))
-Case conversion may be inaccurate. Consider using '#align convex_hull_convex_hull_union_left convexHull_convexHull_union_leftβ‚“'. -/
 theorem convexHull_convexHull_union_left (s t : Set E) :
     convexHull π•œ (convexHull π•œ s βˆͺ t) = convexHull π•œ (s βˆͺ t) :=
   ClosureOperator.closure_sup_closure_left _ _ _
 #align convex_hull_convex_hull_union_left convexHull_convexHull_union_left
 
-/- warning: convex_hull_convex_hull_union_right -> convexHull_convexHull_union_right is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) s (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) t))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) s t))
-but is expected to have type
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) s (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) t))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) s t))
-Case conversion may be inaccurate. Consider using '#align convex_hull_convex_hull_union_right convexHull_convexHull_union_rightβ‚“'. -/
 theorem convexHull_convexHull_union_right (s t : Set E) :
     convexHull π•œ (s βˆͺ convexHull π•œ t) = convexHull π•œ (s βˆͺ t) :=
   ClosureOperator.closure_sup_closure_right _ _ _
 #align convex_hull_convex_hull_union_right convexHull_convexHull_union_right
 
-/- warning: convex.convex_remove_iff_not_mem_convex_hull_remove -> Convex.convex_remove_iff_not_mem_convexHull_remove is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (forall (x : E), Iff (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) (SDiff.sdiff.{u2} (Set.{u2} E) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E)) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x))) (Not (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (SDiff.sdiff.{u2} (Set.{u2} E) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E)) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x))))))
-but is expected to have type
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u1, u2} π•œ E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} π•œ E (MonoidWithZero.toZero.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (forall (x : E), Iff (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u1, u2} π•œ E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} π•œ E (MonoidWithZero.toZero.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) (SDiff.sdiff.{u2} (Set.{u2} E) (Set.instSDiffSet.{u2} E) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.instSingletonSet.{u2} E) x))) (Not (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (SDiff.sdiff.{u2} (Set.{u2} E) (Set.instSDiffSet.{u2} E) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.instSingletonSet.{u2} E) x))))))
-Case conversion may be inaccurate. Consider using '#align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_removeβ‚“'. -/
 theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Convex π•œ s) (x : E) :
     Convex π•œ (s \ {x}) ↔ x βˆ‰ convexHull π•œ (s \ {x}) :=
   by
@@ -232,12 +190,6 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
       ⟨convexHull_min (diff_subset _ _) hs hy, by rintro (rfl : y = x); exact hx hy⟩
 #align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_remove
 
-/- warning: is_linear_map.convex_hull_image -> IsLinearMap.convexHull_image is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} π•œ F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_3] {f : E -> F}, (IsLinearMap.{u1, u2, u3} π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (forall (s : Set.{u2} E), Eq.{succ u3} (Set.{u3} F) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F _inst_1 _inst_3 _inst_5) (Set.image.{u2, u3} E F f s)) (Set.image.{u2, u3} E F f (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s)))
-but is expected to have type
-  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] {f : E -> F}, (IsLinearMap.{u3, u2, u1} π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (forall (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F f s)) (Set.image.{u2, u1} E F f (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s)))
-Case conversion may be inaccurate. Consider using '#align is_linear_map.convex_hull_image IsLinearMap.convexHull_imageβ‚“'. -/
 theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   Set.Subset.antisymm
@@ -248,9 +200,6 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
         ((convex_convexHull π•œ _).is_linear_preimage hf))
 #align is_linear_map.convex_hull_image IsLinearMap.convexHull_image
 
-/- warning: linear_map.convex_hull_image -> LinearMap.convexHull_image is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.convex_hull_image LinearMap.convexHull_imageβ‚“'. -/
 theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   f.isLinear.convexHull_image s
@@ -280,9 +229,6 @@ section AddCommGroup
 
 variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s : Set E)
 
-/- warning: affine_map.image_convex_hull -> AffineMap.image_convexHull is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_map.image_convex_hull AffineMap.image_convexHullβ‚“'. -/
 theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
   by
   apply Set.Subset.antisymm
@@ -312,12 +258,6 @@ theorem affineSpan_convexHull : affineSpan π•œ (convexHull π•œ s) = affineSpan
 #align affine_span_convex_hull affineSpan_convexHull
 -/
 
-/- warning: convex_hull_neg -> convexHull_neg is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] (s : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) s)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s))
-but is expected to have type
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] (s : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (NegZeroClass.toNeg.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))) s)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (NegZeroClass.toNeg.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s))
-Case conversion may be inaccurate. Consider using '#align convex_hull_neg convexHull_negβ‚“'. -/
 theorem convexHull_neg (s : Set E) : convexHull π•œ (-s) = -convexHull π•œ s := by
   simp_rw [← image_neg]; exact (AffineMap.image_convexHull _ <| -1).symm
 #align convex_hull_neg convexHull_neg
Diff
@@ -229,10 +229,7 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
   suffices h : s \ {x} = convexHull π•œ (s \ {x}); Β· convert convex_convexHull π•œ _
   exact
     subset.antisymm (subset_convexHull π•œ _) fun y hy =>
-      ⟨convexHull_min (diff_subset _ _) hs hy,
-        by
-        rintro (rfl : y = x)
-        exact hx hy⟩
+      ⟨convexHull_min (diff_subset _ _) hs hy, by rintro (rfl : y = x); exact hx hy⟩
 #align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_remove
 
 /- warning: is_linear_map.convex_hull_image -> IsLinearMap.convexHull_image is a dubious translation:
@@ -321,10 +318,8 @@ lean 3 declaration is
 but is expected to have type
   forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] (s : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (NegZeroClass.toNeg.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))) s)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (NegZeroClass.toNeg.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s))
 Case conversion may be inaccurate. Consider using '#align convex_hull_neg convexHull_negβ‚“'. -/
-theorem convexHull_neg (s : Set E) : convexHull π•œ (-s) = -convexHull π•œ s :=
-  by
-  simp_rw [← image_neg]
-  exact (AffineMap.image_convexHull _ <| -1).symm
+theorem convexHull_neg (s : Set E) : convexHull π•œ (-s) = -convexHull π•œ s := by
+  simp_rw [← image_neg]; exact (AffineMap.image_convexHull _ <| -1).symm
 #align convex_hull_neg convexHull_neg
 
 end AddCommGroup
Diff
@@ -252,10 +252,7 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
 #align is_linear_map.convex_hull_image IsLinearMap.convexHull_image
 
 /- warning: linear_map.convex_hull_image -> LinearMap.convexHull_image is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} π•œ F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_3] (f : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u3} (Set.{u3} F) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F _inst_1 _inst_3 _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) s)) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s))
-but is expected to have type
-  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] (f : LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) s)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.convex_hull_image LinearMap.convexHull_imageβ‚“'. -/
 theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
@@ -287,10 +284,7 @@ section AddCommGroup
 variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s : Set E)
 
 /- warning: affine_map.image_convex_hull -> AffineMap.image_convexHull is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π•œ F (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))), Eq.{succ u3} (Set.{u3} F) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) f) s))
-but is expected to have type
-  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedRing.{u3} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))), Eq.{succ u1} (Set.{u1} F) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3) _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) s))
+<too large>
 Case conversion may be inaccurate. Consider using '#align affine_map.image_convex_hull AffineMap.image_convexHullβ‚“'. -/
 theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
   by
Diff
@@ -255,7 +255,7 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
 lean 3 declaration is
   forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} π•œ F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_3] (f : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u3} (Set.{u3} F) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F _inst_1 _inst_3 _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) s)) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s))
 but is expected to have type
-  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] (f : LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) s)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s))
+  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] (f : LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) s)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s))
 Case conversion may be inaccurate. Consider using '#align linear_map.convex_hull_image LinearMap.convexHull_imageβ‚“'. -/
 theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
Diff
@@ -255,7 +255,7 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
 lean 3 declaration is
   forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} π•œ F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_3] (f : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u3} (Set.{u3} F) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F _inst_1 _inst_3 _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) s)) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s))
 but is expected to have type
-  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] (f : LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) s)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s))
+  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] (f : LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) s)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s))
 Case conversion may be inaccurate. Consider using '#align linear_map.convex_hull_image LinearMap.convexHull_imageβ‚“'. -/
 theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
Diff
@@ -290,7 +290,7 @@ variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s :
 lean 3 declaration is
   forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π•œ F (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))), Eq.{succ u3} (Set.{u3} F) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) f) s))
 but is expected to have type
-  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedRing.{u3} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))), Eq.{succ u1} (Set.{u1} F) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3) _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) s))
+  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedRing.{u3} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))), Eq.{succ u1} (Set.{u1} F) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3) _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) s))
 Case conversion may be inaccurate. Consider using '#align affine_map.image_convex_hull AffineMap.image_convexHullβ‚“'. -/
 theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
   by
Diff
@@ -54,9 +54,9 @@ Case conversion may be inaccurate. Consider using '#align convex_hull convexHull
 def convexHull : ClosureOperator (Set E) :=
   ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t) (Convex π•œ)
     (fun s =>
-      Set.subset_interα΅’ fun t => Set.subset_interα΅’ fun hst => Set.subset_interα΅’ fun ht => hst)
-    (fun s => convex_interα΅’ fun t => convex_interα΅’ fun ht => convex_interα΅’ id) fun s t hst ht =>
-    Set.interα΅’_subset_of_subset t <| Set.interα΅’_subset_of_subset hst <| Set.interα΅’_subset _ ht
+      Set.subset_iInter fun t => Set.subset_iInter fun hst => Set.subset_iInter fun ht => hst)
+    (fun s => convex_iInter fun t => convex_iInter fun ht => convex_iInter id) fun s t hst ht =>
+    Set.iInter_subset_of_subset t <| Set.iInter_subset_of_subset hst <| Set.iInter_subset _ ht
 #align convex_hull convexHull
 
 variable (s : Set E)
@@ -77,17 +77,17 @@ theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
   ClosureOperator.closure_mem_mk₃ s
 #align convex_convex_hull convex_convexHull
 
-#print convexHull_eq_interα΅’ /-
-theorem convexHull_eq_interα΅’ : convexHull π•œ s = β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t :=
+#print convexHull_eq_iInter /-
+theorem convexHull_eq_iInter : convexHull π•œ s = β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t :=
   rfl
-#align convex_hull_eq_Inter convexHull_eq_interα΅’
+#align convex_hull_eq_Inter convexHull_eq_iInter
 -/
 
 variable {π•œ s} {t : Set E} {x y : E}
 
 #print mem_convexHull_iff /-
 theorem mem_convexHull_iff : x ∈ convexHull π•œ s ↔ βˆ€ t, s βŠ† t β†’ Convex π•œ t β†’ x ∈ t := by
-  simp_rw [convexHull_eq_interα΅’, mem_Inter]
+  simp_rw [convexHull_eq_iInter, mem_Inter]
 #align mem_convex_hull_iff mem_convexHull_iff
 -/
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, YaΓ«l Dillies
 
 ! This file was ported from Lean 3 source module analysis.convex.hull
-! leanprover-community/mathlib commit a50170a88a47570ed186b809ca754110590f9476
+! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Order.Closure
 /-!
 # Convex hull
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the convex hull of a set `s` in a module. `convex_hull π•œ s` is the smallest convex
 set containing `s`. In order theory speak, this is a closure operator.
 
Diff
@@ -41,6 +41,12 @@ section AddCommMonoid
 
 variable (π•œ) [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ F]
 
+/- warning: convex_hull -> convexHull is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2], ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))
+but is expected to have type
+  forall (π•œ : Type.{u1}) {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2], ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E)))))))
+Case conversion may be inaccurate. Consider using '#align convex_hull convexHullβ‚“'. -/
 /-- The convex hull of a set `s` is the minimal convex set that includes `s`. -/
 def convexHull : ClosureOperator (Set E) :=
   ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t) (Convex π•œ)
@@ -52,51 +58,84 @@ def convexHull : ClosureOperator (Set E) :=
 
 variable (s : Set E)
 
+#print subset_convexHull /-
 theorem subset_convexHull : s βŠ† convexHull π•œ s :=
   (convexHull π•œ).le_closure s
 #align subset_convex_hull subset_convexHull
+-/
 
+/- warning: convex_convex_hull -> convex_convexHull is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E), Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s)
+but is expected to have type
+  forall (π•œ : Type.{u2}) {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π•œ] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2] (s : Set.{u1} E), Convex.{u2, u1} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π•œ E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π•œ E (MonoidWithZero.toZero.{u2} π•œ (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π•œ E (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2 _inst_4)))) (OrderHom.toFun.{u1, u1} (Set.{u1} E) (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (convexHull.{u2, u1} π•œ E _inst_1 _inst_2 _inst_4)) s)
+Case conversion may be inaccurate. Consider using '#align convex_convex_hull convex_convexHullβ‚“'. -/
 theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
   ClosureOperator.closure_mem_mk₃ s
 #align convex_convex_hull convex_convexHull
 
+#print convexHull_eq_interα΅’ /-
 theorem convexHull_eq_interα΅’ : convexHull π•œ s = β‹‚ (t : Set E) (hst : s βŠ† t) (ht : Convex π•œ t), t :=
   rfl
 #align convex_hull_eq_Inter convexHull_eq_interα΅’
+-/
 
 variable {π•œ s} {t : Set E} {x y : E}
 
+#print mem_convexHull_iff /-
 theorem mem_convexHull_iff : x ∈ convexHull π•œ s ↔ βˆ€ t, s βŠ† t β†’ Convex π•œ t β†’ x ∈ t := by
   simp_rw [convexHull_eq_interα΅’, mem_Inter]
 #align mem_convex_hull_iff mem_convexHull_iff
+-/
 
+#print convexHull_min /-
 theorem convexHull_min (hst : s βŠ† t) (ht : Convex π•œ t) : convexHull π•œ s βŠ† t :=
   ClosureOperator.closure_le_mk₃_iff (show s ≀ t from hst) ht
 #align convex_hull_min convexHull_min
+-/
 
+/- warning: convex.convex_hull_subset_iff -> Convex.convexHull_subset_iff is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E} {t : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) t) -> (Iff (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s) t) (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t))
+but is expected to have type
+  forall {π•œ : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π•œ] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2] {s : Set.{u1} E} {t : Set.{u1} E}, (Convex.{u2, u1} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π•œ E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π•œ E (MonoidWithZero.toZero.{u2} π•œ (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π•œ E (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2 _inst_4)))) t) -> (Iff (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (OrderHom.toFun.{u1, u1} (Set.{u1} E) (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (convexHull.{u2, u1} π•œ E _inst_1 _inst_2 _inst_4)) s) t) (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) s t))
+Case conversion may be inaccurate. Consider using '#align convex.convex_hull_subset_iff Convex.convexHull_subset_iffβ‚“'. -/
 theorem Convex.convexHull_subset_iff (ht : Convex π•œ t) : convexHull π•œ s βŠ† t ↔ s βŠ† t :=
   ⟨(subset_convexHull _ _).trans, fun h => convexHull_min h ht⟩
 #align convex.convex_hull_subset_iff Convex.convexHull_subset_iff
 
+#print convexHull_mono /-
 @[mono]
 theorem convexHull_mono (hst : s βŠ† t) : convexHull π•œ s βŠ† convexHull π•œ t :=
   (convexHull π•œ).Monotone hst
 #align convex_hull_mono convexHull_mono
+-/
 
+/- warning: convex.convex_hull_eq -> Convex.convexHull_eq is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s) s)
+but is expected to have type
+  forall {π•œ : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π•œ] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2] {s : Set.{u1} E}, (Convex.{u2, u1} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π•œ E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π•œ E (MonoidWithZero.toZero.{u2} π•œ (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π•œ E (Semiring.toMonoidWithZero.{u2} π•œ (OrderedSemiring.toSemiring.{u2} π•œ _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π•œ E (OrderedSemiring.toSemiring.{u2} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (Eq.{succ u1} (Set.{u1} E) (OrderHom.toFun.{u1, u1} (Set.{u1} E) (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E))))))) (convexHull.{u2, u1} π•œ E _inst_1 _inst_2 _inst_4)) s) s)
+Case conversion may be inaccurate. Consider using '#align convex.convex_hull_eq Convex.convexHull_eqβ‚“'. -/
 theorem Convex.convexHull_eq (hs : Convex π•œ s) : convexHull π•œ s = s :=
   ClosureOperator.mem_mk₃_closed hs
 #align convex.convex_hull_eq Convex.convexHull_eq
 
+#print convexHull_univ /-
 @[simp]
 theorem convexHull_univ : convexHull π•œ (univ : Set E) = univ :=
   ClosureOperator.closure_top (convexHull π•œ)
 #align convex_hull_univ convexHull_univ
+-/
 
+#print convexHull_empty /-
 @[simp]
 theorem convexHull_empty : convexHull π•œ (βˆ… : Set E) = βˆ… :=
   convex_empty.convexHull_eq
 #align convex_hull_empty convexHull_empty
+-/
 
+#print convexHull_empty_iff /-
 @[simp]
 theorem convexHull_empty_iff : convexHull π•œ s = βˆ… ↔ s = βˆ… :=
   by
@@ -107,28 +146,36 @@ theorem convexHull_empty_iff : convexHull π•œ s = βˆ… ↔ s = βˆ… :=
   Β· rintro rfl
     exact convexHull_empty
 #align convex_hull_empty_iff convexHull_empty_iff
+-/
 
+#print convexHull_nonempty_iff /-
 @[simp]
 theorem convexHull_nonempty_iff : (convexHull π•œ s).Nonempty ↔ s.Nonempty :=
   by
   rw [nonempty_iff_ne_empty, nonempty_iff_ne_empty, Ne.def, Ne.def]
   exact not_congr convexHull_empty_iff
 #align convex_hull_nonempty_iff convexHull_nonempty_iff
+-/
 
 alias convexHull_nonempty_iff ↔ _ Set.Nonempty.convexHull
 #align set.nonempty.convex_hull Set.Nonempty.convexHull
 
 attribute [protected] Set.Nonempty.convexHull
 
+#print segment_subset_convexHull /-
 theorem segment_subset_convexHull (hx : x ∈ s) (hy : y ∈ s) : segment π•œ x y βŠ† convexHull π•œ s :=
   (convex_convexHull _ _).segment_subset (subset_convexHull _ _ hx) (subset_convexHull _ _ hy)
 #align segment_subset_convex_hull segment_subset_convexHull
+-/
 
+#print convexHull_singleton /-
 @[simp]
 theorem convexHull_singleton (x : E) : convexHull π•œ ({x} : Set E) = {x} :=
   (convex_singleton x).convexHull_eq
 #align convex_hull_singleton convexHull_singleton
+-/
 
+#print convexHull_pair /-
 @[simp]
 theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y :=
   by
@@ -138,17 +185,36 @@ theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y :=
   rw [insert_subset, singleton_subset_iff]
   exact ⟨left_mem_segment _ _ _, right_mem_segment _ _ _⟩
 #align convex_hull_pair convexHull_pair
+-/
 
+/- warning: convex_hull_convex_hull_union_left -> convexHull_convexHull_union_left is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s) t)) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) s t))
+but is expected to have type
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) s) t)) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) s t))
+Case conversion may be inaccurate. Consider using '#align convex_hull_convex_hull_union_left convexHull_convexHull_union_leftβ‚“'. -/
 theorem convexHull_convexHull_union_left (s t : Set E) :
     convexHull π•œ (convexHull π•œ s βˆͺ t) = convexHull π•œ (s βˆͺ t) :=
   ClosureOperator.closure_sup_closure_left _ _ _
 #align convex_hull_convex_hull_union_left convexHull_convexHull_union_left
 
+/- warning: convex_hull_convex_hull_union_right -> convexHull_convexHull_union_right is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) s (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) t))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{u2} E) s t))
+but is expected to have type
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] (s : Set.{u2} E) (t : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) s (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) t))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (Union.union.{u2} (Set.{u2} E) (Set.instUnionSet.{u2} E) s t))
+Case conversion may be inaccurate. Consider using '#align convex_hull_convex_hull_union_right convexHull_convexHull_union_rightβ‚“'. -/
 theorem convexHull_convexHull_union_right (s t : Set E) :
     convexHull π•œ (s βˆͺ convexHull π•œ t) = convexHull π•œ (s βˆͺ t) :=
   ClosureOperator.closure_sup_closure_right _ _ _
 #align convex_hull_convex_hull_union_right convexHull_convexHull_union_right
 
+/- warning: convex.convex_remove_iff_not_mem_convex_hull_remove -> Convex.convex_remove_iff_not_mem_convexHull_remove is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (forall (x : E), Iff (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π•œ E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π•œ E (MulZeroClass.toHasZero.{u1} π•œ (MulZeroOneClass.toMulZeroClass.{u1} π•œ (MonoidWithZero.toMulZeroOneClass.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) (SDiff.sdiff.{u2} (Set.{u2} E) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E)) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x))) (Not (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) (SDiff.sdiff.{u2} (Set.{u2} E) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E)) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x))))))
+but is expected to have type
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] {s : Set.{u2} E}, (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u1, u2} π•œ E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} π•œ E (MonoidWithZero.toZero.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) s) -> (forall (x : E), Iff (Convex.{u1, u2} π•œ E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u1, u2} π•œ E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} π•œ E (MonoidWithZero.toZero.{u1} π•œ (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} π•œ E (Semiring.toMonoidWithZero.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_4)))) (SDiff.sdiff.{u2} (Set.{u2} E) (Set.instSDiffSet.{u2} E) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.instSingletonSet.{u2} E) x))) (Not (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4)) (SDiff.sdiff.{u2} (Set.{u2} E) (Set.instSDiffSet.{u2} E) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.instSingletonSet.{u2} E) x))))))
+Case conversion may be inaccurate. Consider using '#align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_removeβ‚“'. -/
 theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Convex π•œ s) (x : E) :
     Convex π•œ (s \ {x}) ↔ x βˆ‰ convexHull π•œ (s \ {x}) :=
   by
@@ -166,6 +232,12 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
         exact hx hy⟩
 #align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_remove
 
+/- warning: is_linear_map.convex_hull_image -> IsLinearMap.convexHull_image is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} π•œ F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_3] {f : E -> F}, (IsLinearMap.{u1, u2, u3} π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (forall (s : Set.{u2} E), Eq.{succ u3} (Set.{u3} F) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F _inst_1 _inst_3 _inst_5) (Set.image.{u2, u3} E F f s)) (Set.image.{u2, u3} E F f (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s)))
+but is expected to have type
+  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] {f : E -> F}, (IsLinearMap.{u3, u2, u1} π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (forall (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F f s)) (Set.image.{u2, u1} E F f (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s)))
+Case conversion may be inaccurate. Consider using '#align is_linear_map.convex_hull_image IsLinearMap.convexHull_imageβ‚“'. -/
 theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   Set.Subset.antisymm
@@ -176,6 +248,12 @@ theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s
         ((convex_convexHull π•œ _).is_linear_preimage hf))
 #align is_linear_map.convex_hull_image IsLinearMap.convexHull_image
 
+/- warning: linear_map.convex_hull_image -> LinearMap.convexHull_image is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} π•œ F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_3] (f : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u3} (Set.{u3} F) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F _inst_1 _inst_3 _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) s)) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π•œ π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π•œ π•œ E F (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) (OrderedSemiring.toSemiring.{u1} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (OrderedSemiring.toSemiring.{u1} π•œ _inst_1)))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E _inst_1 _inst_2 _inst_4) s))
+but is expected to have type
+  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π•œ] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_3] (f : LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) (s : Set.{u2} E), Eq.{succ u1} (Set.{u1} F) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F _inst_1 _inst_3 _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) s)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} π•œ π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} π•œ π•œ E F (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) (OrderedSemiring.toSemiring.{u3} π•œ _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} π•œ (Semiring.toNonAssocSemiring.{u3} π•œ (OrderedSemiring.toSemiring.{u3} π•œ _inst_1)))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E _inst_1 _inst_2 _inst_4)) s))
+Case conversion may be inaccurate. Consider using '#align linear_map.convex_hull_image LinearMap.convexHull_imageβ‚“'. -/
 theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
     convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
   f.isLinear.convexHull_image s
@@ -189,9 +267,11 @@ section OrderedCommSemiring
 
 variable [OrderedCommSemiring π•œ] [AddCommMonoid E] [Module π•œ E]
 
+#print convexHull_smul /-
 theorem convexHull_smul (a : π•œ) (s : Set E) : convexHull π•œ (a β€’ s) = a β€’ convexHull π•œ s :=
   (LinearMap.lsmul _ _ a).convexHull_image _
 #align convex_hull_smul convexHull_smul
+-/
 
 end OrderedCommSemiring
 
@@ -203,6 +283,12 @@ section AddCommGroup
 
 variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s : Set E)
 
+/- warning: affine_map.image_convex_hull -> AffineMap.image_convexHull is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : Module.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π•œ F (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))), Eq.{succ u3} (Set.{u3} F) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) f) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) (coeFn.{succ u3, succ u3} (ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (fun (_x : ClosureOperator.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) => (Set.{u3} F) -> (Set.{u3} F)) (ClosureOperator.hasCoeToFun.{u3} (Set.{u3} F) (PartialOrder.toPreorder.{u3} (Set.{u3} F) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} F) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} F) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} F) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} F) (Set.completeBooleanAlgebra.{u3} F)))))))) (convexHull.{u1, u3} π•œ F (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5) (Set.image.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} π•œ E E F F (OrderedRing.toRing.{u1} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) f) s))
+but is expected to have type
+  forall {π•œ : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedRing.{u3} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u1} F] [_inst_4 : Module.{u3, u2} π•œ E (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π•œ F (OrderedSemiring.toSemiring.{u3} π•œ (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3)] (s : Set.{u2} E) (f : AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))), Eq.{succ u1} (Set.{u1} F) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π•œ E (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) (OrderHom.toFun.{u1, u1} (Set.{u1} F) (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (ClosureOperator.toOrderHom.{u1} (Set.{u1} F) (PartialOrder.toPreorder.{u1} (Set.{u1} F) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} F) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} F) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} F) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} F) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} F) (Set.instCompleteBooleanAlgebraSet.{u1} F))))))) (convexHull.{u3, u1} π•œ F (OrderedRing.toOrderedSemiring.{u3} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u1} F _inst_3) _inst_5)) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u3, u2, u2, u1, u1} π•œ E E F F (OrderedRing.toRing.{u3} π•œ _inst_1) _inst_2 _inst_4 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_5 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_3))) f) s))
+Case conversion may be inaccurate. Consider using '#align affine_map.image_convex_hull AffineMap.image_convexHullβ‚“'. -/
 theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
   by
   apply Set.Subset.antisymm
@@ -216,10 +302,13 @@ theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ
         ((convex_convexHull π•œ s).affine_image f)
 #align affine_map.image_convex_hull AffineMap.image_convexHull
 
+#print convexHull_subset_affineSpan /-
 theorem convexHull_subset_affineSpan : convexHull π•œ s βŠ† (affineSpan π•œ s : Set E) :=
   convexHull_min (subset_affineSpan π•œ s) (affineSpan π•œ s).Convex
 #align convex_hull_subset_affine_span convexHull_subset_affineSpan
+-/
 
+#print affineSpan_convexHull /-
 @[simp]
 theorem affineSpan_convexHull : affineSpan π•œ (convexHull π•œ s) = affineSpan π•œ s :=
   by
@@ -227,7 +316,14 @@ theorem affineSpan_convexHull : affineSpan π•œ (convexHull π•œ s) = affineSpan
   rw [affineSpan_le]
   exact convexHull_subset_affineSpan s
 #align affine_span_convex_hull affineSpan_convexHull
+-/
 
+/- warning: convex_hull_neg -> convexHull_neg is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (OrderedRing.toRing.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] (s : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) s)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s))
+but is expected to have type
+  forall {π•œ : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π•œ] [_inst_2 : AddCommGroup.{u2} E] [_inst_4 : Module.{u1, u2} π•œ E (OrderedSemiring.toSemiring.{u1} π•œ (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] (s : Set.{u2} E), Eq.{succ u2} (Set.{u2} E) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (NegZeroClass.toNeg.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))) s)) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (NegZeroClass.toNeg.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u1, u2} π•œ E (OrderedRing.toOrderedSemiring.{u1} π•œ _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s))
+Case conversion may be inaccurate. Consider using '#align convex_hull_neg convexHull_negβ‚“'. -/
 theorem convexHull_neg (s : Set E) : convexHull π•œ (-s) = -convexHull π•œ s :=
   by
   simp_rw [← image_neg]

Changes in mathlib4

mathlib3
mathlib4
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -102,7 +102,7 @@ theorem convexHull_empty_iff : convexHull π•œ s = βˆ… ↔ s = βˆ… := by
 
 @[simp]
 theorem convexHull_nonempty_iff : (convexHull π•œ s).Nonempty ↔ s.Nonempty := by
-  rw [nonempty_iff_ne_empty, nonempty_iff_ne_empty, Ne.def, Ne.def]
+  rw [nonempty_iff_ne_empty, nonempty_iff_ne_empty, Ne, Ne]
   exact not_congr convexHull_empty_iff
 #align convex_hull_nonempty_iff convexHull_nonempty_iff
 
refactor: flip LinearMap.convexHull_image and rename to LinearMap.image_convexHull (#11298)
  • flip LinearMap.convexHull_image and rename to image_convexHull

  • while at it, also flip the direction of convexHull_smul and convexHull_neg to match this

  • fix argument order of AffineMap.convexHull_image: have the AffineMap argument come first; there's no good reason not to and this enables dot notation

  • inline variable (s : Set E) to achieve this; this is slightly clearer anyway

zulip discussion

Diff
@@ -158,20 +158,20 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
         exact hx hy⟩
 #align convex.convex_remove_iff_not_mem_convex_hull_remove Convex.convex_remove_iff_not_mem_convexHull_remove
 
-theorem IsLinearMap.convexHull_image {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
-    convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
+theorem IsLinearMap.image_convexHull {f : E β†’ F} (hf : IsLinearMap π•œ f) (s : Set E) :
+    f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
   Set.Subset.antisymm
-    (convexHull_min (image_subset _ (subset_convexHull π•œ s)) <|
-      (convex_convexHull π•œ s).is_linear_image hf)
     (image_subset_iff.2 <|
       convexHull_min (image_subset_iff.1 <| subset_convexHull π•œ _)
         ((convex_convexHull π•œ _).is_linear_preimage hf))
-#align is_linear_map.convex_hull_image IsLinearMap.convexHull_image
+    (convexHull_min (image_subset _ (subset_convexHull π•œ s)) <|
+      (convex_convexHull π•œ s).is_linear_image hf)
+#align is_linear_map.convex_hull_image IsLinearMap.image_convexHull
 
-theorem LinearMap.convexHull_image (f : E β†’β‚—[π•œ] F) (s : Set E) :
-    convexHull π•œ (f '' s) = f '' convexHull π•œ s :=
-  f.isLinear.convexHull_image s
-#align linear_map.convex_hull_image LinearMap.convexHull_image
+theorem LinearMap.image_convexHull (f : E β†’β‚—[π•œ] F) (s : Set E) :
+    f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
+  f.isLinear.image_convexHull s
+#align linear_map.convex_hull_image LinearMap.image_convexHull
 
 end AddCommMonoid
 
@@ -181,8 +181,8 @@ section OrderedCommSemiring
 
 variable [OrderedCommSemiring π•œ] [AddCommMonoid E] [Module π•œ E]
 
-theorem convexHull_smul (a : π•œ) (s : Set E) : convexHull π•œ (a β€’ s) = a β€’ convexHull π•œ s :=
-  (LinearMap.lsmul _ _ a).convexHull_image _
+theorem convexHull_smul (a : π•œ) (s : Set E) : a β€’ convexHull π•œ s = convexHull π•œ (a β€’ s) :=
+  (LinearMap.lsmul _ _ a).image_convexHull _
 #align convex_hull_smul convexHull_smul
 
 end OrderedCommSemiring
@@ -193,33 +193,33 @@ variable [OrderedRing π•œ]
 
 section AddCommGroup
 
-variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s : Set E)
+variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F]
 
-theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) :
+theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) (s : Set E) :
     f '' convexHull π•œ s = convexHull π•œ (f '' s) := by
   apply Set.Subset.antisymm
   Β· rw [Set.image_subset_iff]
-    refine' convexHull_min _ ((convex_convexHull π•œ (f '' s)).affine_preimage f)
+    refine convexHull_min ?_ ((convex_convexHull π•œ (f '' s)).affine_preimage f)
     rw [← Set.image_subset_iff]
     exact subset_convexHull π•œ (f '' s)
   Β· exact convexHull_min (Set.image_subset _ (subset_convexHull π•œ s))
       ((convex_convexHull π•œ s).affine_image f)
 #align affine_map.image_convex_hull AffineMap.image_convexHull
 
-theorem convexHull_subset_affineSpan : convexHull π•œ s βŠ† (affineSpan π•œ s : Set E) :=
+theorem convexHull_subset_affineSpan (s : Set E) : convexHull π•œ s βŠ† (affineSpan π•œ s : Set E) :=
   convexHull_min (subset_affineSpan π•œ s) (affineSpan π•œ s).convex
 #align convex_hull_subset_affine_span convexHull_subset_affineSpan
 
 @[simp]
-theorem affineSpan_convexHull : affineSpan π•œ (convexHull π•œ s) = affineSpan π•œ s := by
+theorem affineSpan_convexHull (s : Set E) : affineSpan π•œ (convexHull π•œ s) = affineSpan π•œ s := by
   refine' le_antisymm _ (affineSpan_mono π•œ (subset_convexHull π•œ s))
   rw [affineSpan_le]
   exact convexHull_subset_affineSpan s
 #align affine_span_convex_hull affineSpan_convexHull
 
-theorem convexHull_neg (s : Set E) : convexHull π•œ (-s) = -convexHull π•œ s := by
+theorem convexHull_neg (s : Set E) : -convexHull π•œ s = convexHull π•œ (-s) := by
   simp_rw [← image_neg]
-  exact (AffineMap.image_convexHull _ <| -1).symm
+  exact AffineMap.image_convexHull (-1) _
 #align convex_hull_neg convexHull_neg
 
 end AddCommGroup
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -148,8 +148,8 @@ theorem Convex.convex_remove_iff_not_mem_convexHull_remove {s : Set E} (hs : Con
     rw [hsx.convexHull_eq] at hx
     exact hx.2 (mem_singleton _)
   rintro hx
-  suffices h : s \ {x} = convexHull π•œ (s \ {x})
-  Β· rw [h]
+  suffices h : s \ {x} = convexHull π•œ (s \ {x}) by
+    rw [h]
     exact convex_convexHull π•œ _
   exact
     Subset.antisymm (subset_convexHull π•œ _) fun y hy =>
refactor: Closure predicate for ClosureOperator (#9153)

This PR is the result of two years and a half of pondering.

The only way we ever define closure operators is by having a pre-existing "closedness" predicate and defining the closure of an element x as the infimum of all closed y β‰₯ x (assuming we're in a complete lattice). In particular, the emphasis is not on the preorder of closed elements, but on the closedness predicate. Morally, this is because a closure operator is the same as a Galois connection to the preorder of closed elements, but without mentioning the preorder of closed elements. That means that if we cared about the preorder of closed elements, we would not have wanted a closure operator in the first place, but a Galois connection.

All this said, here's what this PR does

  • Add an IsClosed predicate to ClosureOperator. This redundant field is here to fix definitional equalities.
  • Remove the set closeds. This is mostly replaced by the predicate, except in the map toCloseds, so we...
  • ... Introduce an abbrev Closeds for the order of closed elements
  • Rename toClosed to toCloseds to match.
  • Rename the constructor mk₃ to the more sexy ofPred. This is virtually the only useful constructor. Maybe it should even be taken as the definition, but I haven't gone that far.
  • Rename the old ofPred to ofCompletePred. ofCompletePred is a specialisation of ofPred to the case where we are in a complete lattice.
  • Remove a bunch of lemmas that are junk now that the definitional equality for IsClosed can be controlled.
  • Golf existing uses of ClosureOperator. The diff here, I think, truly demonstrates that this PR is a step forward.

I am not extending the refactor to LowerAdjoint because:

  • I am still not sure we want LowerAdjoint to even exist
  • The rationale of preferring the closedness predicate over the preorder of closed elements is less strong here.
  • I am lazy.

It is however easy to do the same refactor if wanted.

Diff
@@ -40,12 +40,8 @@ variable (π•œ)
 variable [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ F]
 
 /-- The convex hull of a set `s` is the minimal convex set that includes `s`. -/
-def convexHull : ClosureOperator (Set E) :=
-  ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (_ : s βŠ† t) (_ : Convex π•œ t), t) (Convex π•œ)
-    (fun _ =>
-      Set.subset_iInter fun _ => Set.subset_iInter fun hst => Set.subset_iInter fun _ => hst)
-    (fun _ => convex_iInter fun _ => convex_iInter fun _ => convex_iInter id) fun _ t hst ht =>
-    Set.iInter_subset_of_subset t <| Set.iInter_subset_of_subset hst <| Set.iInter_subset _ ht
+@[simps! isClosed]
+def convexHull : ClosureOperator (Set E) := .ofCompletePred (Convex π•œ) fun _ ↦ convex_sInter
 #align convex_hull convexHull
 
 variable (s : Set E)
@@ -54,13 +50,11 @@ theorem subset_convexHull : s βŠ† convexHull π•œ s :=
   (convexHull π•œ).le_closure s
 #align subset_convex_hull subset_convexHull
 
-theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
-  ClosureOperator.closure_mem_mk₃ s
+theorem convex_convexHull : Convex π•œ (convexHull π•œ s) := (convexHull π•œ).isClosed_closure s
 #align convex_convex_hull convex_convexHull
 
-theorem convexHull_eq_iInter : convexHull π•œ s =
-    β‹‚ (t : Set E) (_ : s βŠ† t) (_ : Convex π•œ t), t :=
-  rfl
+theorem convexHull_eq_iInter : convexHull π•œ s = β‹‚ (t : Set E) (_ : s βŠ† t) (_ : Convex π•œ t), t := by
+  simp [convexHull, iInter_subtype, iInter_and]
 #align convex_hull_eq_Inter convexHull_eq_iInter
 
 variable {π•œ s} {t : Set E} {x y : E}
@@ -69,12 +63,11 @@ theorem mem_convexHull_iff : x ∈ convexHull π•œ s ↔ βˆ€ t, s βŠ† t β†’ Conv
   simp_rw [convexHull_eq_iInter, mem_iInter]
 #align mem_convex_hull_iff mem_convexHull_iff
 
-theorem convexHull_min (hst : s βŠ† t) (ht : Convex π•œ t) : convexHull π•œ s βŠ† t :=
-  ClosureOperator.closure_le_mk₃_iff (show s ≀ t from hst) ht
+theorem convexHull_min : s βŠ† t β†’ Convex π•œ t β†’ convexHull π•œ s βŠ† t := (convexHull π•œ).closure_min
 #align convex_hull_min convexHull_min
 
 theorem Convex.convexHull_subset_iff (ht : Convex π•œ t) : convexHull π•œ s βŠ† t ↔ s βŠ† t :=
-  ⟨(subset_convexHull _ _).trans, fun h => convexHull_min h ht⟩
+  (show (convexHull π•œ).IsClosed t from ht).closure_le_iff
 #align convex.convex_hull_subset_iff Convex.convexHull_subset_iff
 
 @[mono]
@@ -82,7 +75,9 @@ theorem convexHull_mono (hst : s βŠ† t) : convexHull π•œ s βŠ† convexHull π•œ
   (convexHull π•œ).monotone hst
 #align convex_hull_mono convexHull_mono
 
-theorem Convex.convexHull_eq : Convex π•œ s β†’ convexHull π•œ s = s := ClosureOperator.mem_mk₃_closed.2
+lemma convexHull_eq_self : convexHull π•œ s = s ↔ Convex π•œ s := (convexHull π•œ).isClosed_iff.symm
+
+alias ⟨_, Convex.convexHull_eq⟩ := convexHull_eq_self
 #align convex.convex_hull_eq Convex.convexHull_eq
 
 @[simp]
feat: Sup-closed sets (#6901)

This defines sets closed under supremum/infimum, shows that every set has a sup-closure/inf-closure and prove that if every sup-closed/inf-closed set in a sup-semilattice/inf-semilattice has a least upper bound/greatest lower, then the lattice is in fact complete.

As a bonus, we use our new predicate in Order.CompactlyGenerated.

Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com>

Diff
@@ -82,8 +82,7 @@ theorem convexHull_mono (hst : s βŠ† t) : convexHull π•œ s βŠ† convexHull π•œ
   (convexHull π•œ).monotone hst
 #align convex_hull_mono convexHull_mono
 
-theorem Convex.convexHull_eq (hs : Convex π•œ s) : convexHull π•œ s = s :=
-  ClosureOperator.mem_mk₃_closed hs
+theorem Convex.convexHull_eq : Convex π•œ s β†’ convexHull π•œ s = s := ClosureOperator.mem_mk₃_closed.2
 #align convex.convex_hull_eq Convex.convexHull_eq
 
 @[simp]
chore: cleanup a few porting notes and friends relating to alias (#6790)
  • After the new alias command we can now do protected alias
  • alias at some point broke dot notation by unfolding (see #1022) this was fixed in #1058 but the library was not fixed up there
Diff
@@ -112,11 +112,7 @@ theorem convexHull_nonempty_iff : (convexHull π•œ s).Nonempty ↔ s.Nonempty :=
   exact not_congr convexHull_empty_iff
 #align convex_hull_nonempty_iff convexHull_nonempty_iff
 
--- Porting note: `alias` cannot be protected.
---alias convexHull_nonempty_iff ↔ _ Set.Nonempty.convexHull
---attribute [protected] Set.Nonempty.convexHull
-protected theorem Set.Nonempty.convexHull (h : s.Nonempty) : (convexHull π•œ s).Nonempty :=
-convexHull_nonempty_iff.2 h
+protected alias ⟨_, Set.Nonempty.convexHull⟩ := convexHull_nonempty_iff
 #align set.nonempty.convex_hull Set.Nonempty.convexHull
 
 theorem segment_subset_convexHull (hx : x ∈ s) (hy : y ∈ s) : segment π•œ x y βŠ† convexHull π•œ 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
@@ -26,7 +26,7 @@ open Set
 
 open Pointwise
 
-variable {π•œ E F : Type _}
+variable {π•œ E F : Type*}
 
 section convexHull
 
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,15 +2,12 @@
 Copyright (c) 2020 Yury Kudriashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, YaΓ«l Dillies
-
-! This file was ported from Lean 3 source module analysis.convex.hull
-! leanprover-community/mathlib commit 92bd7b1ffeb306a89f450bee126ddd8a284c259d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Convex.Basic
 import Mathlib.Order.Closure
 
+#align_import analysis.convex.hull from "leanprover-community/mathlib"@"92bd7b1ffeb306a89f450bee126ddd8a284c259d"
+
 /-!
 # Convex hull
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudriashov, YaΓ«l Dillies
 
 ! This file was ported from Lean 3 source module analysis.convex.hull
-! leanprover-community/mathlib commit a50170a88a47570ed186b809ca754110590f9476
+! leanprover-community/mathlib commit 92bd7b1ffeb306a89f450bee126ddd8a284c259d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -131,6 +131,11 @@ theorem convexHull_singleton (x : E) : convexHull π•œ ({x} : Set E) = {x} :=
   (convex_singleton x).convexHull_eq
 #align convex_hull_singleton convexHull_singleton
 
+@[simp]
+theorem convexHull_zero : convexHull π•œ (0 : Set E) = 0 :=
+  convexHull_singleton 0
+#align convex_hull_zero convexHull_zero
+
 @[simp]
 theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y := by
   refine (convexHull_min ?_ <| convex_segment _ _).antisymm
feat(Data.Set.Basic/Data.Finset.Basic): rename insert_subset (#5450)

Currently, (for both Set and Finset) insert_subset is an iff lemma stating that insert a s βŠ† t if and only if a ∈ t and s βŠ† t. For both types, this PR renames this lemma to insert_subset_iff, and adds an insert_subset lemma that gives the implication just in the reverse direction : namely theorem insert_subset (ha : a ∈ t) (hs : s βŠ† t) : insert a s βŠ† t .

This both aligns the naming with union_subset and union_subset_iff, and removes the need for the awkward insert_subset.mpr ⟨_,_⟩ idiom. It touches a lot of files (too many to list), but in a trivial way.

Diff
@@ -135,7 +135,7 @@ theorem convexHull_singleton (x : E) : convexHull π•œ ({x} : Set E) = {x} :=
 theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y := by
   refine (convexHull_min ?_ <| convex_segment _ _).antisymm
     (segment_subset_convexHull (mem_insert _ _) <| subset_insert _ _ <| mem_singleton _)
-  rw [insert_subset, singleton_subset_iff]
+  rw [insert_subset_iff, singleton_subset_iff]
   exact ⟨left_mem_segment _ _ _, right_mem_segment _ _ _⟩
 #align convex_hull_pair convexHull_pair
 
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -44,7 +44,7 @@ variable [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ F]
 
 /-- The convex hull of a set `s` is the minimal convex set that includes `s`. -/
 def convexHull : ClosureOperator (Set E) :=
-  ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (_hst : s βŠ† t) (_ht : Convex π•œ t), t) (Convex π•œ)
+  ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (_ : s βŠ† t) (_ : Convex π•œ t), t) (Convex π•œ)
     (fun _ =>
       Set.subset_iInter fun _ => Set.subset_iInter fun hst => Set.subset_iInter fun _ => hst)
     (fun _ => convex_iInter fun _ => convex_iInter fun _ => convex_iInter id) fun _ t hst ht =>
@@ -62,7 +62,7 @@ theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
 #align convex_convex_hull convex_convexHull
 
 theorem convexHull_eq_iInter : convexHull π•œ s =
-    β‹‚ (t : Set E) (_hst : s βŠ† t) (_ht : Convex π•œ t), t :=
+    β‹‚ (t : Set E) (_ : s βŠ† t) (_ : Convex π•œ t), t :=
   rfl
 #align convex_hull_eq_Inter convexHull_eq_iInter
 
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supβ‚› β†’ sSup
  • infβ‚› β†’ sInf
  • supα΅’ β†’ iSup
  • infα΅’ β†’ iInf
  • bsupβ‚› β†’ bsSup
  • binfβ‚› β†’ bsInf
  • bsupα΅’ β†’ biSup
  • binfα΅’ β†’ biInf
  • csupβ‚› β†’ csSup
  • cinfβ‚› β†’ csInf
  • csupα΅’ β†’ ciSup
  • cinfα΅’ β†’ ciInf
  • unionβ‚› β†’ sUnion
  • interβ‚› β†’ sInter
  • unionα΅’ β†’ iUnion
  • interα΅’ β†’ iInter
  • bunionβ‚› β†’ bsUnion
  • binterβ‚› β†’ bsInter
  • bunionα΅’ β†’ biUnion
  • binterα΅’ β†’ biInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -46,9 +46,9 @@ variable [AddCommMonoid E] [AddCommMonoid F] [Module π•œ E] [Module π•œ F]
 def convexHull : ClosureOperator (Set E) :=
   ClosureOperator.mk₃ (fun s => β‹‚ (t : Set E) (_hst : s βŠ† t) (_ht : Convex π•œ t), t) (Convex π•œ)
     (fun _ =>
-      Set.subset_interα΅’ fun _ => Set.subset_interα΅’ fun hst => Set.subset_interα΅’ fun _ => hst)
-    (fun _ => convex_interα΅’ fun _ => convex_interα΅’ fun _ => convex_interα΅’ id) fun _ t hst ht =>
-    Set.interα΅’_subset_of_subset t <| Set.interα΅’_subset_of_subset hst <| Set.interα΅’_subset _ ht
+      Set.subset_iInter fun _ => Set.subset_iInter fun hst => Set.subset_iInter fun _ => hst)
+    (fun _ => convex_iInter fun _ => convex_iInter fun _ => convex_iInter id) fun _ t hst ht =>
+    Set.iInter_subset_of_subset t <| Set.iInter_subset_of_subset hst <| Set.iInter_subset _ ht
 #align convex_hull convexHull
 
 variable (s : Set E)
@@ -61,15 +61,15 @@ theorem convex_convexHull : Convex π•œ (convexHull π•œ s) :=
   ClosureOperator.closure_mem_mk₃ s
 #align convex_convex_hull convex_convexHull
 
-theorem convexHull_eq_interα΅’ : convexHull π•œ s =
+theorem convexHull_eq_iInter : convexHull π•œ s =
     β‹‚ (t : Set E) (_hst : s βŠ† t) (_ht : Convex π•œ t), t :=
   rfl
-#align convex_hull_eq_Inter convexHull_eq_interα΅’
+#align convex_hull_eq_Inter convexHull_eq_iInter
 
 variable {π•œ s} {t : Set E} {x y : E}
 
 theorem mem_convexHull_iff : x ∈ convexHull π•œ s ↔ βˆ€ t, s βŠ† t β†’ Convex π•œ t β†’ x ∈ t := by
-  simp_rw [convexHull_eq_interα΅’, mem_interα΅’]
+  simp_rw [convexHull_eq_iInter, mem_iInter]
 #align mem_convex_hull_iff mem_convexHull_iff
 
 theorem convexHull_min (hst : s βŠ† t) (ht : Convex π•œ t) : convexHull π•œ s βŠ† t :=
feat: port Analysis.Convex.Join (#3633)
Diff
@@ -133,9 +133,8 @@ theorem convexHull_singleton (x : E) : convexHull π•œ ({x} : Set E) = {x} :=
 
 @[simp]
 theorem convexHull_pair (x y : E) : convexHull π•œ {x, y} = segment π•œ x y := by
-  refine'
-    (convexHull_min _ <| convex_segment _ _).antisymm
-      (segment_subset_convexHull (mem_insert _ _) <| mem_insert_of_mem _ <| mem_singleton _)
+  refine (convexHull_min ?_ <| convex_segment _ _).antisymm
+    (segment_subset_convexHull (mem_insert _ _) <| subset_insert _ _ <| mem_singleton _)
   rw [insert_subset, singleton_subset_iff]
   exact ⟨left_mem_segment _ _ _, right_mem_segment _ _ _⟩
 #align convex_hull_pair convexHull_pair
@@ -204,17 +203,15 @@ section AddCommGroup
 
 variable [AddCommGroup E] [AddCommGroup F] [Module π•œ E] [Module π•œ F] (s : Set E)
 
-theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) : f '' convexHull π•œ s = convexHull π•œ (f '' s) :=
-  by
+theorem AffineMap.image_convexHull (f : E →ᡃ[π•œ] F) :
+    f '' convexHull π•œ s = convexHull π•œ (f '' s) := by
   apply Set.Subset.antisymm
   Β· rw [Set.image_subset_iff]
     refine' convexHull_min _ ((convex_convexHull π•œ (f '' s)).affine_preimage f)
     rw [← Set.image_subset_iff]
     exact subset_convexHull π•œ (f '' s)
-  Β·
-    exact
-      convexHull_min (Set.image_subset _ (subset_convexHull π•œ s))
-        ((convex_convexHull π•œ s).affine_image f)
+  Β· exact convexHull_min (Set.image_subset _ (subset_convexHull π•œ s))
+      ((convex_convexHull π•œ s).affine_image f)
 #align affine_map.image_convex_hull AffineMap.image_convexHull
 
 theorem convexHull_subset_affineSpan : convexHull π•œ s βŠ† (affineSpan π•œ s : Set E) :=
feat: port Analysis.Convex.Hull (#3147)

Dependencies 9 + 421

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

The unported dependencies are