analysis.convex.star
β·
Mathlib.Analysis.Convex.Star
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -137,7 +137,7 @@ theorem starConvex_sInter {S : Set (Set E)} (h : β s β S, StarConvex π x
#print starConvex_iInter /-
theorem starConvex_iInter {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) :=
- sInter_range s βΈ starConvex_sInter <| forall_range_iff.2 h
+ sInter_range s βΈ starConvex_sInter <| forall_mem_range.2 h
#align star_convex_Inter starConvex_iInter
-/
@@ -205,10 +205,10 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
refine' β¨fun h y hy a b ha hb hab => h hy ha.le hb.le hab, _β©
intro h y hy a b ha hb hab
obtain rfl | ha := ha.eq_or_lt
- Β· rw [zero_add] at hab
+ Β· rw [zero_add] at hab
rwa [hab, one_smul, zero_smul, zero_add]
obtain rfl | hb := hb.eq_or_lt
- Β· rw [add_zero] at hab
+ Β· rw [add_zero] at hab
rwa [hab, one_smul, zero_smul, add_zero]
exact h hy ha hb hab
#align star_convex_iff_forall_pos starConvex_iff_forall_pos
@@ -222,9 +222,9 @@ theorem starConvex_iff_forall_ne_pos (hx : x β s) :
refine' β¨fun h y hy _ a b ha hb hab => h hy ha.le hb.le hab, _β©
intro h y hy a b ha hb hab
obtain rfl | ha' := ha.eq_or_lt
- Β· rw [zero_add] at hab ; rwa [hab, zero_smul, one_smul, zero_add]
+ Β· rw [zero_add] at hab; rwa [hab, zero_smul, one_smul, zero_add]
obtain rfl | hb' := hb.eq_or_lt
- Β· rw [add_zero] at hab ; rwa [hab, zero_smul, one_smul, add_zero]
+ Β· rw [add_zero] at hab; rwa [hab, zero_smul, one_smul, add_zero]
obtain rfl | hxy := eq_or_ne x y
Β· rwa [Convex.combo_self hab]
exact h hy hxy ha' hb' hab
@@ -316,7 +316,7 @@ theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
by
intro y hy a b ha hb hab
have h := hs hy ha hb hab
- rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
+ rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
#align star_convex.preimage_add_right StarConvex.preimage_add_right
-/
@@ -325,7 +325,7 @@ theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
theorem StarConvex.preimage_add_left (hs : StarConvex π (x + z) s) :
StarConvex π x ((fun x => x + z) β»ΒΉ' s) :=
by
- rw [add_comm] at hs
+ rw [add_comm] at hs
simpa only [add_comm] using hs.preimage_add_right
#align star_convex.preimage_add_left StarConvex.preimage_add_left
-/
@@ -375,7 +375,7 @@ theorem StarConvex.affinity (hs : StarConvex π x s) (z : E) (c : π) :
StarConvex π (z + c β’ x) ((fun x => z + c β’ x) '' s) :=
by
have h := (hs.smul c).add_left z
- rwa [β image_smul, image_image] at h
+ rwa [β image_smul, image_image] at h
#align star_convex.affinity StarConvex.affinity
-/
@@ -493,14 +493,14 @@ theorem starConvex_iff_div :
β¨fun h y hy a b ha hb hab => by
apply h hy
Β· have ha' := mul_le_mul_of_nonneg_left ha (inv_pos.2 hab).le
- rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at ha'
+ rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at ha'
Β· have hb' := mul_le_mul_of_nonneg_left hb (inv_pos.2 hab).le
- rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
+ rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
Β· rw [β add_div]
exact div_self hab.ne', fun h y hy a b ha hb hab =>
by
have h' := h hy ha hb
- rw [hab, div_one, div_one] at h'
+ rw [hab, div_one, div_one] at h'
exact h' zero_lt_oneβ©
#align star_convex_iff_div starConvex_iff_div
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -536,16 +536,16 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
Β· refine' hs.out hx hy (mem_Icc.2 β¨_, _β©)
calc
x = a β’ x + b β’ x := (Convex.combo_self hab _).symm
- _ β€ a β’ x + b β’ y := add_le_add_left (smul_le_smul_of_nonneg hxy hb) _
+ _ β€ a β’ x + b β’ y := add_le_add_left (smul_le_smul_of_nonneg_left hxy hb) _
calc
- a β’ x + b β’ y β€ a β’ y + b β’ y := add_le_add_right (smul_le_smul_of_nonneg hxy ha) _
+ a β’ x + b β’ y β€ a β’ y + b β’ y := add_le_add_right (smul_le_smul_of_nonneg_left hxy ha) _
_ = y := Convex.combo_self hab _
Β· refine' hs.out hy hx (mem_Icc.2 β¨_, _β©)
calc
y = a β’ y + b β’ y := (Convex.combo_self hab _).symm
- _ β€ a β’ x + b β’ y := add_le_add_right (smul_le_smul_of_nonneg hyx ha) _
+ _ β€ a β’ x + b β’ y := add_le_add_right (smul_le_smul_of_nonneg_left hyx ha) _
calc
- a β’ x + b β’ y β€ a β’ x + b β’ x := add_le_add_left (smul_le_smul_of_nonneg hyx hb) _
+ a β’ x + b β’ y β€ a β’ x + b β’ x := add_le_add_left (smul_le_smul_of_nonneg_left hyx hb) _
_ = x := Convex.combo_self hab _
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2021 YaΓ«l Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies
-/
-import Mathbin.Analysis.Convex.Segment
+import Analysis.Convex.Segment
#align_import analysis.convex.star from "leanprover-community/mathlib"@"cb3ceec8485239a61ed51d944cb9a95b68c6bafc"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -557,7 +557,7 @@ theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Se
#align star_convex_iff_ord_connected starConvex_iff_ordConnected
-/
-alias starConvex_iff_ordConnected β StarConvex.ordConnected _
+alias β¨StarConvex.ordConnected, _β© := starConvex_iff_ordConnected
#align star_convex.ord_connected StarConvex.ordConnected
end OrdConnected
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2021 YaΓ«l Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies
-
-! This file was ported from Lean 3 source module analysis.convex.star
-! leanprover-community/mathlib commit cb3ceec8485239a61ed51d944cb9a95b68c6bafc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Convex.Segment
+#align_import analysis.convex.star from "leanprover-community/mathlib"@"cb3ceec8485239a61ed51d944cb9a95b68c6bafc"
+
/-!
# Star-convex sets
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -78,6 +78,7 @@ def StarConvex : Prop :=
variable {π x s} {t : Set E}
+#print starConvex_iff_segment_subset /-
theorem starConvex_iff_segment_subset : StarConvex π x s β β β¦yβ¦, y β s β [x -[π] y] β s :=
by
constructor
@@ -86,16 +87,22 @@ theorem starConvex_iff_segment_subset : StarConvex π x s β β β¦yβ¦, y
Β· rintro h y hy a b ha hb hab
exact h hy β¨a, b, ha, hb, hab, rflβ©
#align star_convex_iff_segment_subset starConvex_iff_segment_subset
+-/
+#print StarConvex.segment_subset /-
theorem StarConvex.segment_subset (h : StarConvex π x s) {y : E} (hy : y β s) : [x -[π] y] β s :=
starConvex_iff_segment_subset.1 h hy
#align star_convex.segment_subset StarConvex.segment_subset
+-/
+#print StarConvex.openSegment_subset /-
theorem StarConvex.openSegment_subset (h : StarConvex π x s) {y : E} (hy : y β s) :
openSegment π x y β s :=
(openSegment_subset_segment π x y).trans (h.segment_subset hy)
#align star_convex.open_segment_subset StarConvex.openSegment_subset
+-/
+#print starConvex_iff_pointwise_add_subset /-
/-- Alternative definition of star-convexity, in terms of pointwise set operations. -/
theorem starConvex_iff_pointwise_add_subset :
StarConvex π x s β β β¦a b : πβ¦, 0 β€ a β 0 β€ b β a + b = 1 β a β’ {x} + b β’ s β s :=
@@ -106,16 +113,23 @@ theorem starConvex_iff_pointwise_add_subset :
rintro hA a b ha hb hab w β¨au, bv, β¨u, rfl : u = x, rflβ©, β¨v, hv, rflβ©, rflβ©
exact hA hv ha hb hab
#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subset
+-/
+#print starConvex_empty /-
theorem starConvex_empty (x : E) : StarConvex π x β
:= fun y hy => hy.elim
#align star_convex_empty starConvex_empty
+-/
+#print starConvex_univ /-
theorem starConvex_univ (x : E) : StarConvex π x univ := fun _ _ _ _ _ _ _ => trivial
#align star_convex_univ starConvex_univ
+-/
+#print StarConvex.inter /-
theorem StarConvex.inter (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s β© t) :=
fun y hy a b ha hb hab => β¨hs hy.left ha hb hab, ht hy.right ha hb habβ©
#align star_convex.inter StarConvex.inter
+-/
#print starConvex_sInter /-
theorem starConvex_sInter {S : Set (Set E)} (h : β s β S, StarConvex π x s) :
@@ -130,12 +144,14 @@ theorem starConvex_iInter {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConve
#align star_convex_Inter starConvex_iInter
-/
+#print StarConvex.union /-
theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s βͺ t) :=
by
rintro y (hy | hy) a b ha hb hab
Β· exact Or.inl (hs hy ha hb hab)
Β· exact Or.inr (ht hy ha hb hab)
#align star_convex.union StarConvex.union
+-/
#print starConvex_iUnion /-
theorem starConvex_iUnion {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
@@ -156,15 +172,19 @@ theorem starConvex_sUnion {S : Set (Set E)} (hS : β s β S, StarConvex π x
-/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print StarConvex.prod /-
theorem StarConvex.prod {y : F} {s : Set E} {t : Set F} (hs : StarConvex π x s)
(ht : StarConvex π y t) : StarConvex π (x, y) (s ΓΛ’ t) := fun y hy a b ha hb hab =>
β¨hs hy.1 ha hb hab, ht hy.2 ha hb habβ©
#align star_convex.prod StarConvex.prod
+-/
+#print starConvex_pi /-
theorem starConvex_pi {ΞΉ : Type _} {E : ΞΉ β Type _} [β i, AddCommMonoid (E i)] [β i, SMul π (E i)]
{x : β i, E i} {s : Set ΞΉ} {t : β i, Set (E i)} (ht : β β¦iβ¦, i β s β StarConvex π (x i) (t i)) :
StarConvex π x (s.pi t) := fun y hy a b ha hb hab i hi => ht hi (hy i hi) ha hb hab
#align star_convex_pi starConvex_pi
+-/
end SMul
@@ -172,13 +192,16 @@ section Module
variable [Module π E] [Module π F] {x y z : E} {s : Set E}
+#print StarConvex.mem /-
theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
by
obtain β¨y, hyβ© := h
convert hs hy zero_le_one le_rfl (add_zero 1)
rw [one_smul, zero_smul, add_zero]
#align star_convex.mem StarConvex.mem
+-/
+#print starConvex_iff_forall_pos /-
theorem starConvex_iff_forall_pos (hx : x β s) :
StarConvex π x s β β β¦yβ¦, y β s β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
by
@@ -192,7 +215,9 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
rwa [hab, one_smul, zero_smul, add_zero]
exact h hy ha hb hab
#align star_convex_iff_forall_pos starConvex_iff_forall_pos
+-/
+#print starConvex_iff_forall_ne_pos /-
theorem starConvex_iff_forall_ne_pos (hx : x β s) :
StarConvex π x s β
β β¦yβ¦, y β s β x β y β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
@@ -207,6 +232,7 @@ theorem starConvex_iff_forall_ne_pos (hx : x β s) :
Β· rwa [Convex.combo_self hab]
exact h hy hxy ha' hb' hab
#align star_convex_iff_forall_ne_pos starConvex_iff_forall_ne_pos
+-/
#print starConvex_iff_openSegment_subset /-
theorem starConvex_iff_openSegment_subset (hx : x β s) :
@@ -216,12 +242,15 @@ theorem starConvex_iff_openSegment_subset (hx : x β s) :
#align star_convex_iff_open_segment_subset starConvex_iff_openSegment_subset
-/
+#print starConvex_singleton /-
theorem starConvex_singleton (x : E) : StarConvex π x {x} :=
by
rintro y (rfl : y = x) a b ha hb hab
exact Convex.combo_self hab _
#align star_convex_singleton starConvex_singleton
+-/
+#print StarConvex.linear_image /-
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
StarConvex π (f x) (s.image f) :=
by
@@ -229,29 +258,39 @@ theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F
obtain β¨y', hy', rflβ© := hy
exact β¨a β’ x + b β’ y', hs hy' ha hb hab, by rw [f.map_add, f.map_smul, f.map_smul]β©
#align star_convex.linear_image StarConvex.linear_image
+-/
+#print StarConvex.is_linear_image /-
theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf : IsLinearMap π f) :
StarConvex π (f x) (f '' s) :=
hs.linear_image <| hf.mk' f
#align star_convex.is_linear_image StarConvex.is_linear_image
+-/
+#print StarConvex.linear_preimage /-
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
StarConvex π x (s.Preimage f) := by
intro y hy a b ha hb hab
rw [mem_preimage, f.map_add, f.map_smul, f.map_smul]
exact hs hy ha hb hab
#align star_convex.linear_preimage StarConvex.linear_preimage
+-/
+#print StarConvex.is_linear_preimage /-
theorem StarConvex.is_linear_preimage {s : Set F} {f : E β F} (hs : StarConvex π (f x) s)
(hf : IsLinearMap π f) : StarConvex π x (preimage f s) :=
hs.linear_preimage <| hf.mk' f
#align star_convex.is_linear_preimage StarConvex.is_linear_preimage
+-/
+#print StarConvex.add /-
theorem StarConvex.add {t : Set E} (hs : StarConvex π x s) (ht : StarConvex π y t) :
StarConvex π (x + y) (s + t) := by rw [β add_image_prod];
exact (hs.prod ht).is_linear_image IsLinearMap.isLinearMap_add
#align star_convex.add StarConvex.add
+-/
+#print StarConvex.add_left /-
theorem StarConvex.add_left (hs : StarConvex π x s) (z : E) :
StarConvex π (z + x) ((fun x => z + x) '' s) :=
by
@@ -260,7 +299,9 @@ theorem StarConvex.add_left (hs : StarConvex π x s) (z : E) :
refine' β¨a β’ x + b β’ y', hs hy' ha hb hab, _β©
rw [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul]
#align star_convex.add_left StarConvex.add_left
+-/
+#print StarConvex.add_right /-
theorem StarConvex.add_right (hs : StarConvex π x s) (z : E) :
StarConvex π (x + z) ((fun x => x + z) '' s) :=
by
@@ -269,7 +310,9 @@ theorem StarConvex.add_right (hs : StarConvex π x s) (z : E) :
refine' β¨a β’ x + b β’ y', hs hy' ha hb hab, _β©
rw [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul]
#align star_convex.add_right StarConvex.add_right
+-/
+#print StarConvex.preimage_add_right /-
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
StarConvex π x ((fun x => z + x) β»ΒΉ' s) :=
@@ -278,7 +321,9 @@ theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
have h := hs hy ha hb hab
rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
#align star_convex.preimage_add_right StarConvex.preimage_add_right
+-/
+#print StarConvex.preimage_add_left /-
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_left (hs : StarConvex π (x + z) s) :
StarConvex π x ((fun x => x + z) β»ΒΉ' s) :=
@@ -286,6 +331,7 @@ theorem StarConvex.preimage_add_left (hs : StarConvex π (x + z) s) :
rw [add_comm] at hs
simpa only [add_comm] using hs.preimage_add_right
#align star_convex.preimage_add_left StarConvex.preimage_add_left
+-/
end Module
@@ -295,10 +341,12 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x y : E}
+#print StarConvex.sub' /-
theorem StarConvex.sub' {s : Set (E Γ E)} (hs : StarConvex π (x, y) s) :
StarConvex π (x - y) ((fun x : E Γ E => x.1 - x.2) '' s) :=
hs.is_linear_image IsLinearMap.isLinearMap_sub
#align star_convex.sub' StarConvex.sub'
+-/
end AddCommGroup
@@ -312,21 +360,27 @@ section AddCommMonoid
variable [AddCommMonoid E] [AddCommMonoid F] [Module π E] [Module π F] {x : E} {s : Set E}
+#print StarConvex.smul /-
theorem StarConvex.smul (hs : StarConvex π x s) (c : π) : StarConvex π (c β’ x) (c β’ s) :=
hs.linear_image <| LinearMap.lsmul _ _ c
#align star_convex.smul StarConvex.smul
+-/
+#print StarConvex.preimage_smul /-
theorem StarConvex.preimage_smul {c : π} (hs : StarConvex π (c β’ x) s) :
StarConvex π x ((fun z => c β’ z) β»ΒΉ' s) :=
hs.linear_preimage (LinearMap.lsmul _ _ c)
#align star_convex.preimage_smul StarConvex.preimage_smul
+-/
+#print StarConvex.affinity /-
theorem StarConvex.affinity (hs : StarConvex π x s) (z : E) (c : π) :
StarConvex π (z + c β’ x) ((fun x => z + c β’ x) '' s) :=
by
have h := (hs.smul c).add_left z
rwa [β image_smul, image_image] at h
#align star_convex.affinity StarConvex.affinity
+-/
end AddCommMonoid
@@ -340,6 +394,7 @@ section AddCommMonoid
variable [AddCommMonoid E] [SMulWithZero π E] {s : Set E}
+#print starConvex_zero_iff /-
theorem starConvex_zero_iff :
StarConvex π 0 s β β β¦x : Eβ¦, x β s β β β¦a : πβ¦, 0 β€ a β a β€ 1 β a β’ x β s :=
by
@@ -351,6 +406,7 @@ theorem starConvex_zero_iff :
Β· rw [smul_zero, zero_add]
exact h hb (by rw [β hab]; exact le_add_of_nonneg_left ha)
#align star_convex_zero_iff starConvex_zero_iff
+-/
end AddCommMonoid
@@ -358,6 +414,7 @@ section AddCommGroup
variable [AddCommGroup E] [AddCommGroup F] [Module π E] [Module π F] {x y : E} {s t : Set E}
+#print StarConvex.add_smul_mem /-
theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ y β s :=
by
@@ -366,11 +423,15 @@ theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t
rw [h]
exact hs hy (sub_nonneg_of_le htβ) htβ (sub_add_cancel _ _)
#align star_convex.add_smul_mem StarConvex.add_smul_mem
+-/
+#print StarConvex.smul_mem /-
theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : t β’ x β s := by simpa using hs.add_smul_mem (by simpa using hx) htβ htβ
#align star_convex.smul_mem StarConvex.smul_mem
+-/
+#print StarConvex.add_smul_sub_mem /-
theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ (y - x) β s :=
by
@@ -378,7 +439,9 @@ theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t
rw [segment_eq_image']
exact mem_image_of_mem _ β¨htβ, htββ©
#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_mem
+-/
+#print StarConvex.affine_preimage /-
/-- The preimage of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : StarConvex π (f x) s) :
StarConvex π x (f β»ΒΉ' s) := by
@@ -386,7 +449,9 @@ theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : Star
rw [mem_preimage, Convex.combo_affine_apply hab]
exact hs hy ha hb hab
#align star_convex.affine_preimage StarConvex.affine_preimage
+-/
+#print StarConvex.affine_image /-
/-- The image of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarConvex π x s) :
StarConvex π (f x) (f '' s) :=
@@ -395,14 +460,19 @@ theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarCon
refine' β¨a β’ x + b β’ y', β¨hs hy' ha hb hab, _β©β©
rw [Convex.combo_affine_apply hab, hy'f]
#align star_convex.affine_image StarConvex.affine_image
+-/
+#print StarConvex.neg /-
theorem StarConvex.neg (hs : StarConvex π x s) : StarConvex π (-x) (-s) := by rw [β image_neg];
exact hs.is_linear_image IsLinearMap.isLinearMap_neg
#align star_convex.neg StarConvex.neg
+-/
+#print StarConvex.sub /-
theorem StarConvex.sub (hs : StarConvex π x s) (ht : StarConvex π y t) :
StarConvex π (x - y) (s - t) := by simp_rw [sub_eq_add_neg]; exact hs.add ht.neg
#align star_convex.sub StarConvex.sub
+-/
end AddCommGroup
@@ -416,6 +486,7 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x : E} {s : Set E}
+#print starConvex_iff_div /-
/-- Alternative definition of star-convexity, using division. -/
theorem starConvex_iff_div :
StarConvex π x s β
@@ -435,12 +506,15 @@ theorem starConvex_iff_div :
rw [hab, div_one, div_one] at h'
exact h' zero_lt_oneβ©
#align star_convex_iff_div starConvex_iff_div
+-/
+#print StarConvex.mem_smul /-
theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) : x β t β’ s :=
by
rw [mem_smul_set_iff_inv_smul_memβ (zero_lt_one.trans_le ht).ne']
exact hs.smul_mem hx (inv_nonneg.2 <| zero_le_one.trans ht) (inv_le_one ht)
#align star_convex.mem_smul StarConvex.mem_smul
+-/
end AddCommGroup
@@ -455,6 +529,7 @@ Relates `star_convex` and `set.ord_connected`.
section OrdConnected
+#print Set.OrdConnected.starConvex /-
theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid E] [Module π E]
[OrderedSMul π E] {x : E} {s : Set E} (hs : s.OrdConnected) (hx : x β s)
(h : β y β s, x β€ y β¨ y β€ x) : StarConvex π x s :=
@@ -476,11 +551,14 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
a β’ x + b β’ y β€ a β’ x + b β’ x := add_le_add_left (smul_le_smul_of_nonneg hyx hb) _
_ = x := Convex.combo_self hab _
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
+-/
+#print starConvex_iff_ordConnected /-
theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Set π} (hx : x β s) :
StarConvex π x s β s.OrdConnected := by
simp_rw [ord_connected_iff_uIcc_subset_left hx, starConvex_iff_segment_subset, segment_eq_uIcc]
#align star_convex_iff_ord_connected starConvex_iff_ordConnected
+-/
alias starConvex_iff_ordConnected β StarConvex.ordConnected _
#align star_convex.ord_connected StarConvex.ordConnected
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -465,20 +465,16 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
calc
x = a β’ x + b β’ x := (Convex.combo_self hab _).symm
_ β€ a β’ x + b β’ y := add_le_add_left (smul_le_smul_of_nonneg hxy hb) _
-
calc
a β’ x + b β’ y β€ a β’ y + b β’ y := add_le_add_right (smul_le_smul_of_nonneg hxy ha) _
_ = y := Convex.combo_self hab _
-
Β· refine' hs.out hy hx (mem_Icc.2 β¨_, _β©)
calc
y = a β’ y + b β’ y := (Convex.combo_self hab _).symm
_ β€ a β’ x + b β’ y := add_le_add_right (smul_le_smul_of_nonneg hyx ha) _
-
calc
a β’ x + b β’ y β€ a β’ x + b β’ x := add_le_add_left (smul_le_smul_of_nonneg hyx hb) _
_ = x := Convex.combo_self hab _
-
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Set π} (hx : x β s) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -141,7 +141,7 @@ theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
theorem starConvex_iUnion {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) := by
rintro y hy a b ha hb hab
- rw [mem_Union] at hyβ’
+ rw [mem_Union] at hy β’
obtain β¨i, hyβ© := hy
exact β¨i, hs i hy ha hb habβ©
#align star_convex_Union starConvex_iUnion
@@ -185,10 +185,10 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
refine' β¨fun h y hy a b ha hb hab => h hy ha.le hb.le hab, _β©
intro h y hy a b ha hb hab
obtain rfl | ha := ha.eq_or_lt
- Β· rw [zero_add] at hab
+ Β· rw [zero_add] at hab
rwa [hab, one_smul, zero_smul, zero_add]
obtain rfl | hb := hb.eq_or_lt
- Β· rw [add_zero] at hab
+ Β· rw [add_zero] at hab
rwa [hab, one_smul, zero_smul, add_zero]
exact h hy ha hb hab
#align star_convex_iff_forall_pos starConvex_iff_forall_pos
@@ -200,9 +200,9 @@ theorem starConvex_iff_forall_ne_pos (hx : x β s) :
refine' β¨fun h y hy _ a b ha hb hab => h hy ha.le hb.le hab, _β©
intro h y hy a b ha hb hab
obtain rfl | ha' := ha.eq_or_lt
- Β· rw [zero_add] at hab; rwa [hab, zero_smul, one_smul, zero_add]
+ Β· rw [zero_add] at hab ; rwa [hab, zero_smul, one_smul, zero_add]
obtain rfl | hb' := hb.eq_or_lt
- Β· rw [add_zero] at hab; rwa [hab, zero_smul, one_smul, add_zero]
+ Β· rw [add_zero] at hab ; rwa [hab, zero_smul, one_smul, add_zero]
obtain rfl | hxy := eq_or_ne x y
Β· rwa [Convex.combo_self hab]
exact h hy hxy ha' hb' hab
@@ -276,14 +276,14 @@ theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
by
intro y hy a b ha hb hab
have h := hs hy ha hb hab
- rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
+ rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
#align star_convex.preimage_add_right StarConvex.preimage_add_right
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_left (hs : StarConvex π (x + z) s) :
StarConvex π x ((fun x => x + z) β»ΒΉ' s) :=
by
- rw [add_comm] at hs
+ rw [add_comm] at hs
simpa only [add_comm] using hs.preimage_add_right
#align star_convex.preimage_add_left StarConvex.preimage_add_left
@@ -325,7 +325,7 @@ theorem StarConvex.affinity (hs : StarConvex π x s) (z : E) (c : π) :
StarConvex π (z + c β’ x) ((fun x => z + c β’ x) '' s) :=
by
have h := (hs.smul c).add_left z
- rwa [β image_smul, image_image] at h
+ rwa [β image_smul, image_image] at h
#align star_convex.affinity StarConvex.affinity
end AddCommMonoid
@@ -425,14 +425,14 @@ theorem starConvex_iff_div :
β¨fun h y hy a b ha hb hab => by
apply h hy
Β· have ha' := mul_le_mul_of_nonneg_left ha (inv_pos.2 hab).le
- rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at ha'
+ rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at ha'
Β· have hb' := mul_le_mul_of_nonneg_left hb (inv_pos.2 hab).le
- rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
+ rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
Β· rw [β add_div]
exact div_self hab.ne', fun h y hy a b ha hb hab =>
by
have h' := h hy ha hb
- rw [hab, div_one, div_one] at h'
+ rw [hab, div_one, div_one] at h'
exact h' zero_lt_oneβ©
#align star_convex_iff_div starConvex_iff_div
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -52,7 +52,7 @@ A nonempty open star-convex set in `β^n` is diffeomorphic to the entire space.
open Set
-open Convex Pointwise
+open scoped Convex Pointwise
variable {π E F : Type _}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -78,12 +78,6 @@ def StarConvex : Prop :=
variable {π x s} {t : Set E}
-/- warning: star_convex_iff_segment_subset -> starConvex_iff_segment_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (segment.{u1, u2} π E _inst_1 _inst_2 _inst_4 x y) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) (forall {{y : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (segment.{u2, u1} π E _inst_1 _inst_2 _inst_4 x y) s))
-Case conversion may be inaccurate. Consider using '#align star_convex_iff_segment_subset starConvex_iff_segment_subsetβ'. -/
theorem starConvex_iff_segment_subset : StarConvex π x s β β β¦yβ¦, y β s β [x -[π] y] β s :=
by
constructor
@@ -93,33 +87,15 @@ theorem starConvex_iff_segment_subset : StarConvex π x s β β β¦yβ¦, y
exact h hy β¨a, b, ha, hb, hab, rflβ©
#align star_convex_iff_segment_subset starConvex_iff_segment_subset
-/- warning: star_convex.segment_subset -> StarConvex.segment_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (segment.{u1, u2} π E _inst_1 _inst_2 _inst_4 x y) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (segment.{u2, u1} π E _inst_1 _inst_2 _inst_4 x y) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.segment_subset StarConvex.segment_subsetβ'. -/
theorem StarConvex.segment_subset (h : StarConvex π x s) {y : E} (hy : y β s) : [x -[π] y] β s :=
starConvex_iff_segment_subset.1 h hy
#align star_convex.segment_subset StarConvex.segment_subset
-/- warning: star_convex.open_segment_subset -> StarConvex.openSegment_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (openSegment.{u1, u2} π E _inst_1 _inst_2 _inst_4 x y) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (openSegment.{u2, u1} π E _inst_1 _inst_2 _inst_4 x y) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.open_segment_subset StarConvex.openSegment_subsetβ'. -/
theorem StarConvex.openSegment_subset (h : StarConvex π x s) {y : E} (hy : y β s) :
openSegment π x y β s :=
(openSegment_subset_segment π x y).trans (h.segment_subset hy)
#align star_convex.open_segment_subset StarConvex.openSegment_subset
-/- warning: star_convex_iff_pointwise_add_subset -> starConvex_iff_pointwise_add_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) a (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x)) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) b 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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedSemiring.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedSemiring.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) b) -> (Eq.{succ u2} π (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))))) a b) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} E) (Set.{u1} E) (Set.{u1} E) (instHAdd.{u1} (Set.{u1} E) (Set.add.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))))) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E _inst_4)) a (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E _inst_4)) b s)) s))
-Case conversion may be inaccurate. Consider using '#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subsetβ'. -/
/-- Alternative definition of star-convexity, in terms of pointwise set operations. -/
theorem starConvex_iff_pointwise_add_subset :
StarConvex π x s β β β¦a b : πβ¦, 0 β€ a β 0 β€ b β a + b = 1 β a β’ {x} + b β’ s β s :=
@@ -131,30 +107,12 @@ theorem starConvex_iff_pointwise_add_subset :
exact hA hv ha hb hab
#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subset
-/- warning: star_convex_empty -> starConvex_empty 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 : SMul.{u1, u2} π E] (x : E), StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (EmptyCollection.emptyCollection.{u2} (Set.{u2} E) (Set.hasEmptyc.{u2} E))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] (x : E), StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.instEmptyCollectionSet.{u1} E))
-Case conversion may be inaccurate. Consider using '#align star_convex_empty starConvex_emptyβ'. -/
theorem starConvex_empty (x : E) : StarConvex π x β
:= fun y hy => hy.elim
#align star_convex_empty starConvex_empty
-/- warning: star_convex_univ -> starConvex_univ 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 : SMul.{u1, u2} π E] (x : E), StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (Set.univ.{u2} E)
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] (x : E), StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (Set.univ.{u1} E)
-Case conversion may be inaccurate. Consider using '#align star_convex_univ starConvex_univβ'. -/
theorem starConvex_univ (x : E) : StarConvex π x univ := fun _ _ _ _ _ _ _ => trivial
#align star_convex_univ starConvex_univ
-/- warning: star_convex.inter -> StarConvex.inter 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (Inter.inter.{u2} (Set.{u2} E) (Set.hasInter.{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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (Inter.inter.{u1} (Set.{u1} E) (Set.instInterSet.{u1} E) s t))
-Case conversion may be inaccurate. Consider using '#align star_convex.inter StarConvex.interβ'. -/
theorem StarConvex.inter (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s β© t) :=
fun y hy a b ha hb hab => β¨hs hy.left ha hb hab, ht hy.right ha hb habβ©
#align star_convex.inter StarConvex.inter
@@ -172,12 +130,6 @@ theorem starConvex_iInter {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConve
#align star_convex_Inter starConvex_iInter
-/
-/- warning: star_convex.union -> StarConvex.union 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (Union.union.{u1} (Set.{u1} E) (Set.instUnionSet.{u1} E) s t))
-Case conversion may be inaccurate. Consider using '#align star_convex.union StarConvex.unionβ'. -/
theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s βͺ t) :=
by
rintro y (hy | hy) a b ha hb hab
@@ -203,24 +155,12 @@ theorem starConvex_sUnion {S : Set (Set E)} (hS : β s β S, StarConvex π x
#align star_convex_sUnion starConvex_sUnion
-/
-/- warning: star_convex.prod -> StarConvex.prod 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 : SMul.{u1, u2} π E] [_inst_5 : SMul.{u1, u3} π F] {x : E} {y : F} {s : Set.{u2} E} {t : Set.{u3} F}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u3} π F _inst_1 _inst_3 _inst_5 y t) -> (StarConvex.{u1, max u2 u3} π (Prod.{u2, u3} E F) _inst_1 (Prod.addCommMonoid.{u2, u3} E F _inst_2 _inst_3) (Prod.smul.{u1, u2, u3} π E F _inst_4 _inst_5) (Prod.mk.{u2, u3} E F x y) (Set.prod.{u2, u3} E F s t))
-but is expected to have type
- forall {π : Type.{u1}} {E : Type.{u3}} {F : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u3} E] [_inst_3 : AddCommMonoid.{u2} F] [_inst_4 : SMul.{u1, u3} π E] [_inst_5 : SMul.{u1, u2} π F] {x : E} {y : F} {s : Set.{u3} E} {t : Set.{u2} F}, (StarConvex.{u1, u3} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u2} π F _inst_1 _inst_3 _inst_5 y t) -> (StarConvex.{u1, max u2 u3} π (Prod.{u3, u2} E F) _inst_1 (Prod.instAddCommMonoidSum.{u3, u2} E F _inst_2 _inst_3) (Prod.smul.{u1, u3, u2} π E F _inst_4 _inst_5) (Prod.mk.{u3, u2} E F x y) (Set.prod.{u3, u2} E F s t))
-Case conversion may be inaccurate. Consider using '#align star_convex.prod StarConvex.prodβ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem StarConvex.prod {y : F} {s : Set E} {t : Set F} (hs : StarConvex π x s)
(ht : StarConvex π y t) : StarConvex π (x, y) (s ΓΛ’ t) := fun y hy a b ha hb hab =>
β¨hs hy.1 ha hb hab, ht hy.2 ha hb habβ©
#align star_convex.prod StarConvex.prod
-/- warning: star_convex_pi -> starConvex_pi is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} π] {ΞΉ : Type.{u2}} {E : ΞΉ -> Type.{u3}} [_inst_6 : forall (i : ΞΉ), AddCommMonoid.{u3} (E i)] [_inst_7 : forall (i : ΞΉ), SMul.{u1, u3} π (E i)] {x : forall (i : ΞΉ), E i} {s : Set.{u2} ΞΉ} {t : forall (i : ΞΉ), Set.{u3} (E i)}, (forall {{i : ΞΉ}}, (Membership.Mem.{u2, u2} ΞΉ (Set.{u2} ΞΉ) (Set.hasMem.{u2} ΞΉ) i s) -> (StarConvex.{u1, u3} π (E i) _inst_1 (_inst_6 i) (_inst_7 i) (x i) (t i))) -> (StarConvex.{u1, max u2 u3} π (forall (i : ΞΉ), E i) _inst_1 (Pi.addCommMonoid.{u2, u3} ΞΉ (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_6 i)) (Pi.instSMul.{u2, u3, u1} ΞΉ π (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_7 i)) x (Set.pi.{u2, u3} ΞΉ (fun (i : ΞΉ) => E i) s t))
-but is expected to have type
- forall {π : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} π] {ΞΉ : Type.{u3}} {E : ΞΉ -> Type.{u2}} [_inst_6 : forall (i : ΞΉ), AddCommMonoid.{u2} (E i)] [_inst_7 : forall (i : ΞΉ), SMul.{u1, u2} π (E i)] {x : forall (i : ΞΉ), E i} {s : Set.{u3} ΞΉ} {t : forall (i : ΞΉ), Set.{u2} (E i)}, (forall {{i : ΞΉ}}, (Membership.mem.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.instMembershipSet.{u3} ΞΉ) i s) -> (StarConvex.{u1, u2} π (E i) _inst_1 (_inst_6 i) (_inst_7 i) (x i) (t i))) -> (StarConvex.{u1, max u3 u2} π (forall (i : ΞΉ), E i) _inst_1 (Pi.addCommMonoid.{u3, u2} ΞΉ (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_6 i)) (Pi.instSMul.{u3, u2, u1} ΞΉ π (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_7 i)) x (Set.pi.{u3, u2} ΞΉ (fun (i : ΞΉ) => E i) s t))
-Case conversion may be inaccurate. Consider using '#align star_convex_pi starConvex_piβ'. -/
theorem starConvex_pi {ΞΉ : Type _} {E : ΞΉ β Type _} [β i, AddCommMonoid (E i)] [β i, SMul π (E i)]
{x : β i, E i} {s : Set ΞΉ} {t : β i, Set (E i)} (ht : β β¦iβ¦, i β s β StarConvex π (x i) (t i)) :
StarConvex π x (s.pi t) := fun y hy a b ha hb hab i hi => ht hi (hy i hi) ha hb hab
@@ -232,12 +172,6 @@ section Module
variable [Module π E] [Module π F] {x y z : E} {s : Set E}
-/- warning: star_convex.mem -> StarConvex.mem 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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (Set.Nonempty.{u2} E s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x 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] {x : E} {s : Set.{u1} E}, (StarConvex.{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)))) x s) -> (Set.Nonempty.{u1} E s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s)
-Case conversion may be inaccurate. Consider using '#align star_convex.mem StarConvex.memβ'. -/
theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
by
obtain β¨y, hyβ© := h
@@ -245,9 +179,6 @@ theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
rw [one_smul, zero_smul, add_zero]
#align star_convex.mem StarConvex.mem
-/- warning: star_convex_iff_forall_pos -> starConvex_iff_forall_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_pos starConvex_iff_forall_posβ'. -/
theorem starConvex_iff_forall_pos (hx : x β s) :
StarConvex π x s β β β¦yβ¦, y β s β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
by
@@ -262,9 +193,6 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
exact h hy ha hb hab
#align star_convex_iff_forall_pos starConvex_iff_forall_pos
-/- warning: star_convex_iff_forall_ne_pos -> starConvex_iff_forall_ne_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_ne_pos starConvex_iff_forall_ne_posβ'. -/
theorem starConvex_iff_forall_ne_pos (hx : x β s) :
StarConvex π x s β
β β¦yβ¦, y β s β x β y β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
@@ -288,21 +216,12 @@ theorem starConvex_iff_openSegment_subset (hx : x β s) :
#align star_convex_iff_open_segment_subset starConvex_iff_openSegment_subset
-/
-/- warning: star_convex_singleton -> starConvex_singleton 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] (x : E), StarConvex.{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)))) x (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x)
-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] (x : E), StarConvex.{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)))) x (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)
-Case conversion may be inaccurate. Consider using '#align star_convex_singleton starConvex_singletonβ'. -/
theorem starConvex_singleton (x : E) : StarConvex π x {x} :=
by
rintro y (rfl : y = x) a b ha hb hab
exact Convex.combo_self hab _
#align star_convex_singleton starConvex_singleton
-/- warning: star_convex.linear_image -> StarConvex.linear_image is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex.linear_image StarConvex.linear_imageβ'. -/
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
StarConvex π (f x) (s.image f) :=
by
@@ -311,20 +230,11 @@ theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F
exact β¨a β’ x + b β’ y', hs hy' ha hb hab, by rw [f.map_add, f.map_smul, f.map_smul]β©
#align star_convex.linear_image StarConvex.linear_image
-/- warning: star_convex.is_linear_image -> StarConvex.is_linear_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall {f : E -> F}, (IsLinearMap.{u1, u2, u3} π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (f x) (Set.image.{u2, u3} E F f 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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall {f : E -> F}, (IsLinearMap.{u3, u2, u1} π E F (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{u3, u1} π F _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π F (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π F (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π F (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_3)) (Module.toMulActionWithZero.{u3, u1} π F (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (f x) (Set.image.{u2, u1} E F f s)))
-Case conversion may be inaccurate. Consider using '#align star_convex.is_linear_image StarConvex.is_linear_imageβ'. -/
theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf : IsLinearMap π f) :
StarConvex π (f x) (f '' s) :=
hs.linear_image <| hf.mk' f
#align star_convex.is_linear_image StarConvex.is_linear_image
-/- warning: star_convex.linear_preimage -> StarConvex.linear_preimage is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex.linear_preimage StarConvex.linear_preimageβ'. -/
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
StarConvex π x (s.Preimage f) := by
intro y hy a b ha hb hab
@@ -332,34 +242,16 @@ theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : Star
exact hs hy ha hb hab
#align star_convex.linear_preimage StarConvex.linear_preimage
-/- warning: star_convex.is_linear_preimage -> StarConvex.is_linear_preimage 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] {x : E} {s : Set.{u3} F} {f : E -> F}, (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (f x) s) -> (IsLinearMap.{u1, u2, u3} π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{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)))) x (Set.preimage.{u2, u3} E F f s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} {f : E -> F}, (StarConvex.{u2, u3} π F _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π F (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π F (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π F (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3)) (Module.toMulActionWithZero.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (f x) s) -> (IsLinearMap.{u2, u1, u3} π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F f s))
-Case conversion may be inaccurate. Consider using '#align star_convex.is_linear_preimage StarConvex.is_linear_preimageβ'. -/
theorem StarConvex.is_linear_preimage {s : Set F} {f : E β F} (hs : StarConvex π (f x) s)
(hf : IsLinearMap π f) : StarConvex π x (preimage f s) :=
hs.linear_preimage <| hf.mk' f
#align star_convex.is_linear_preimage StarConvex.is_linear_preimage
-/- warning: star_convex.add -> StarConvex.add 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] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{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)))) x s) -> (StarConvex.{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)))) y t) -> (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x y) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) 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] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{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)))) x s) -> (StarConvex.{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)))) y t) -> (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x y) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) s t))
-Case conversion may be inaccurate. Consider using '#align star_convex.add StarConvex.addβ'. -/
theorem StarConvex.add {t : Set E} (hs : StarConvex π x s) (ht : StarConvex π y t) :
StarConvex π (x + y) (s + t) := by rw [β add_image_prod];
exact (hs.prod ht).is_linear_image IsLinearMap.isLinearMap_add
#align star_convex.add StarConvex.add
-/- warning: star_convex.add_left -> StarConvex.add_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) (Set.image.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) 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] {x : E} {s : Set.{u1} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) (Set.image.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.add_left StarConvex.add_leftβ'. -/
theorem StarConvex.add_left (hs : StarConvex π x s) (z : E) :
StarConvex π (z + x) ((fun x => z + x) '' s) :=
by
@@ -369,12 +261,6 @@ theorem StarConvex.add_left (hs : StarConvex π x s) (z : E) :
rw [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul]
#align star_convex.add_left StarConvex.add_left
-/- warning: star_convex.add_right -> StarConvex.add_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) (Set.image.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) 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] {x : E} {s : Set.{u1} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) (Set.image.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.add_right StarConvex.add_rightβ'. -/
theorem StarConvex.add_right (hs : StarConvex π x s) (z : E) :
StarConvex π (x + z) ((fun x => x + z) '' s) :=
by
@@ -384,12 +270,6 @@ theorem StarConvex.add_right (hs : StarConvex π x s) (z : E) :
rw [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul]
#align star_convex.add_right StarConvex.add_right
-/- warning: star_convex.preimage_add_right -> StarConvex.preimage_add_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] {x : E} {z : E} {s : Set.{u2} E}, (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) 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] {x : E} {z : E} {s : Set.{u1} E}, (StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.preimage_add_right StarConvex.preimage_add_rightβ'. -/
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
StarConvex π x ((fun x => z + x) β»ΒΉ' s) :=
@@ -399,12 +279,6 @@ theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
#align star_convex.preimage_add_right StarConvex.preimage_add_right
-/- warning: star_convex.preimage_add_left -> StarConvex.preimage_add_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] {x : E} {z : E} {s : Set.{u2} E}, (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) 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] {x : E} {z : E} {s : Set.{u1} E}, (StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.preimage_add_left StarConvex.preimage_add_leftβ'. -/
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_left (hs : StarConvex π (x + z) s) :
StarConvex π x ((fun x => x + z) β»ΒΉ' s) :=
@@ -421,12 +295,6 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x y : E}
-/- warning: star_convex.sub' -> StarConvex.sub' is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {y : E} {s : Set.{u2} (Prod.{u2, u2} E E)}, (StarConvex.{u1, u2} π (Prod.{u2, u2} E E) _inst_1 (Prod.addCommMonoid.{u2, u2} E E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)) (Prod.smul.{u1, u2, u2} π E E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) (Prod.mk.{u2, u2} E E x y) s) -> (StarConvex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) x y) (Set.image.{u2, u2} (Prod.{u2, u2} E E) E (fun (x : Prod.{u2, u2} E E) => HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) (Prod.fst.{u2, u2} E E x) (Prod.snd.{u2, u2} E E x)) s))
-but is expected to have type
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {y : E} {s : Set.{u2} (Prod.{u2, u2} E E)}, (StarConvex.{u1, u2} π (Prod.{u2, u2} E E) _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} E E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)) (Prod.smul.{u1, u2, u2} π E E (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) (Prod.mk.{u2, u2} E E x y) s) -> (StarConvex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) x y) (Set.image.{u2, u2} (Prod.{u2, u2} E E) E (fun (x : Prod.{u2, u2} E E) => HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) (Prod.fst.{u2, u2} E E x) (Prod.snd.{u2, u2} E E x)) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.sub' StarConvex.sub'β'. -/
theorem StarConvex.sub' {s : Set (E Γ E)} (hs : StarConvex π (x, y) s) :
StarConvex π (x - y) ((fun x : E Γ E => x.1 - x.2) '' s) :=
hs.is_linear_image IsLinearMap.isLinearMap_sub
@@ -444,33 +312,15 @@ section AddCommMonoid
variable [AddCommMonoid E] [AddCommMonoid F] [Module π E] [Module π F] {x : E} {s : Set E}
-/- warning: star_convex.smul -> StarConvex.smul is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (c : π), StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4))))) c s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (c : π), StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))))) c s))
-Case conversion may be inaccurate. Consider using '#align star_convex.smul StarConvex.smulβ'. -/
theorem StarConvex.smul (hs : StarConvex π x s) (c : π) : StarConvex π (c β’ x) (c β’ s) :=
hs.linear_image <| LinearMap.lsmul _ _ c
#align star_convex.smul StarConvex.smul
-/- warning: star_convex.preimage_smul -> StarConvex.preimage_smul is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2] {x : E} {s : Set.{u2} E} {c : π}, (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x) s) -> (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) x (Set.preimage.{u2, u2} E E (fun (z : E) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c z) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2] {x : E} {s : Set.{u1} E} {c : π}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x) s) -> (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) x (Set.preimage.{u1, u1} E E (fun (z : E) => HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c z) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.preimage_smul StarConvex.preimage_smulβ'. -/
theorem StarConvex.preimage_smul {c : π} (hs : StarConvex π (c β’ x) s) :
StarConvex π x ((fun z => c β’ z) β»ΒΉ' s) :=
hs.linear_preimage (LinearMap.lsmul _ _ c)
#align star_convex.preimage_smul StarConvex.preimage_smul
-/- warning: star_convex.affinity -> StarConvex.affinity is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (z : E) (c : π), StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x)) (Set.image.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x)) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (z : E) (c : π), StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x)) (Set.image.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x)) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.affinity StarConvex.affinityβ'. -/
theorem StarConvex.affinity (hs : StarConvex π x s) (z : E) (c : π) :
StarConvex π (z + c β’ x) ((fun x => z + c β’ x) '' s) :=
by
@@ -490,12 +340,6 @@ section AddCommMonoid
variable [AddCommMonoid E] [SMulWithZero π E] {s : Set E}
-/- warning: star_convex_zero_iff -> starConvex_zero_iff is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : SMulWithZero.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))] {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) s) (forall {{x : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {{a : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) a (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3))) a x) s)))
-Case conversion may be inaccurate. Consider using '#align star_convex_zero_iff starConvex_zero_iffβ'. -/
theorem starConvex_zero_iff :
StarConvex π 0 s β β β¦x : Eβ¦, x β s β β β¦a : πβ¦, 0 β€ a β a β€ 1 β a β’ x β s :=
by
@@ -514,12 +358,6 @@ section AddCommGroup
variable [AddCommGroup E] [AddCommGroup F] [Module π E] [Module π F] {x y : E} {s t : Set E}
-/- warning: star_convex.add_smul_mem -> StarConvex.add_smul_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t y)) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_mem StarConvex.add_smul_memβ'. -/
theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ y β s :=
by
@@ -529,22 +367,10 @@ theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t
exact hs hy (sub_nonneg_of_le htβ) htβ (sub_add_cancel _ _)
#align star_convex.add_smul_mem StarConvex.add_smul_mem
-/- warning: star_convex.smul_mem -> StarConvex.smul_mem 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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t x) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.smul_mem StarConvex.smul_memβ'. -/
theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : t β’ x β s := by simpa using hs.add_smul_mem (by simpa using hx) htβ htβ
#align star_convex.smul_mem StarConvex.smul_mem
-/- warning: star_convex.add_smul_sub_mem -> StarConvex.add_smul_sub_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) y x))) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_memβ'. -/
theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ (y - x) β s :=
by
@@ -553,9 +379,6 @@ theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t
exact mem_image_of_mem _ β¨htβ, htββ©
#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_mem
-/- warning: star_convex.affine_preimage -> StarConvex.affine_preimage is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex.affine_preimage StarConvex.affine_preimageβ'. -/
/-- The preimage of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : StarConvex π (f x) s) :
StarConvex π x (f β»ΒΉ' s) := by
@@ -564,9 +387,6 @@ theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : Star
exact hs hy ha hb hab
#align star_convex.affine_preimage StarConvex.affine_preimage
-/- warning: star_convex.affine_image -> StarConvex.affine_image is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex.affine_image StarConvex.affine_imageβ'. -/
/-- The image of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarConvex π x s) :
StarConvex π (f x) (f '' s) :=
@@ -576,22 +396,10 @@ theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarCon
rw [Convex.combo_affine_apply hab, hy'f]
#align star_convex.affine_image StarConvex.affine_image
-/- warning: star_convex.neg -> StarConvex.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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (Neg.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))) x) (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))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (Neg.neg.{u1} E (NegZeroClass.toNeg.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) x) (Neg.neg.{u1} (Set.{u1} E) (Set.neg.{u1} E (NegZeroClass.toNeg.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))) s))
-Case conversion may be inaccurate. Consider using '#align star_convex.neg StarConvex.negβ'. -/
theorem StarConvex.neg (hs : StarConvex π x s) : StarConvex π (-x) (-s) := by rw [β image_neg];
exact hs.is_linear_image IsLinearMap.isLinearMap_neg
#align star_convex.neg StarConvex.neg
-/- warning: star_convex.sub -> StarConvex.sub 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)] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) y t) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) x y) (HSub.hSub.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHSub.{u2} (Set.{u2} E) (Set.sub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))) s t))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) y t) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) x y) (HSub.hSub.{u1, u1, u1} (Set.{u1} E) (Set.{u1} E) (Set.{u1} E) (instHSub.{u1} (Set.{u1} E) (Set.sub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2))))) s t))
-Case conversion may be inaccurate. Consider using '#align star_convex.sub StarConvex.subβ'. -/
theorem StarConvex.sub (hs : StarConvex π x s) (ht : StarConvex π y t) :
StarConvex π (x - y) (s - t) := by simp_rw [sub_eq_add_neg]; exact hs.add ht.neg
#align star_convex.sub StarConvex.sub
@@ -608,9 +416,6 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x : E} {s : Set E}
-/- warning: star_convex_iff_div -> starConvex_iff_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align star_convex_iff_div starConvex_iff_divβ'. -/
/-- Alternative definition of star-convexity, using division. -/
theorem starConvex_iff_div :
StarConvex π x s β
@@ -631,12 +436,6 @@ theorem starConvex_iff_div :
exact h' zero_lt_oneβ©
#align star_convex_iff_div starConvex_iff_div
-/- warning: star_convex.mem_smul -> StarConvex.mem_smul is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) t) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))))) t s)))
-Case conversion may be inaccurate. Consider using '#align star_convex.mem_smul StarConvex.mem_smulβ'. -/
theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) : x β t β’ s :=
by
rw [mem_smul_set_iff_inv_smul_memβ (zero_lt_one.trans_le ht).ne']
@@ -656,12 +455,6 @@ Relates `star_convex` and `set.ord_connected`.
section OrdConnected
-/- warning: set.ord_connected.star_convex -> Set.OrdConnected.starConvex is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : OrderedAddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : OrderedSMul.{u1, u2} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3))] {x : E} {s : Set.{u2} E}, (Set.OrdConnected.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2)) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall (y : E), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Or (LE.le.{u2} E (Preorder.toHasLe.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) x y) (LE.le.{u2} E (Preorder.toHasLe.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) y x))) -> (StarConvex.{u1, u2} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s)
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : OrderedAddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : OrderedSMul.{u2, u1} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) _inst_3))] {x : E} {s : Set.{u1} E}, (Set.OrdConnected.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2)) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall (y : E), (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (Or (LE.le.{u1} E (Preorder.toLE.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2))) x y) (LE.le.{u1} E (Preorder.toLE.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2))) y x))) -> (StarConvex.{u2, u1} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (OrderedAddCommMonoid.toAddCommMonoid.{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 (OrderedAddCommMonoid.toAddCommMonoid.{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 (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) x s)
-Case conversion may be inaccurate. Consider using '#align set.ord_connected.star_convex Set.OrdConnected.starConvexβ'. -/
theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid E] [Module π E]
[OrderedSMul π E] {x : E} {s : Set E} (hs : s.OrdConnected) (hx : x β s)
(h : β y β s, x β€ y β¨ y β€ x) : StarConvex π x s :=
@@ -688,23 +481,11 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
-/- warning: star_convex_iff_ord_connected -> starConvex_iff_ordConnected is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.Mem.{u1, u1} π (Set.{u1} π) (Set.hasMem.{u1} π) x s) -> (Iff (StarConvex.{u1, u1} π π (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toAddCommGroup.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Mul.toSMul.{u1} π (Distrib.toHasMul.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) x s) (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) s))
-but is expected to have type
- forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.mem.{u1, u1} π (Set.{u1} π) (Set.instMembershipSet.{u1} π) x s) -> (Iff (StarConvex.{u1, u1} π π (OrderedCommSemiring.toOrderedSemiring.{u1} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Algebra.toSMul.{u1, u1} π π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))) (DivisionSemiring.toSemiring.{u1} π (Semifield.toDivisionSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1)))) (Algebra.id.{u1} π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) x s) (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (StrictOrderedRing.toPartialOrder.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) s))
-Case conversion may be inaccurate. Consider using '#align star_convex_iff_ord_connected starConvex_iff_ordConnectedβ'. -/
theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Set π} (hx : x β s) :
StarConvex π x s β s.OrdConnected := by
simp_rw [ord_connected_iff_uIcc_subset_left hx, starConvex_iff_segment_subset, segment_eq_uIcc]
#align star_convex_iff_ord_connected starConvex_iff_ordConnected
-/- warning: star_convex.ord_connected -> StarConvex.ordConnected is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.Mem.{u1, u1} π (Set.{u1} π) (Set.hasMem.{u1} π) x s) -> (StarConvex.{u1, u1} π π (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toAddCommGroup.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Mul.toSMul.{u1} π (Distrib.toHasMul.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) x s) -> (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) s)
-but is expected to have type
- forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.mem.{u1, u1} π (Set.{u1} π) (Set.instMembershipSet.{u1} π) x s) -> (StarConvex.{u1, u1} π π (OrderedCommSemiring.toOrderedSemiring.{u1} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Algebra.toSMul.{u1, u1} π π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))) (DivisionSemiring.toSemiring.{u1} π (Semifield.toDivisionSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1)))) (Algebra.id.{u1} π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) x s) -> (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (StrictOrderedRing.toPartialOrder.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) s)
-Case conversion may be inaccurate. Consider using '#align star_convex.ord_connected StarConvex.ordConnectedβ'. -/
alias starConvex_iff_ordConnected β StarConvex.ordConnected _
#align star_convex.ord_connected StarConvex.ordConnected
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -272,11 +272,9 @@ theorem starConvex_iff_forall_ne_pos (hx : x β s) :
refine' β¨fun h y hy _ a b ha hb hab => h hy ha.le hb.le hab, _β©
intro h y hy a b ha hb hab
obtain rfl | ha' := ha.eq_or_lt
- Β· rw [zero_add] at hab
- rwa [hab, zero_smul, one_smul, zero_add]
+ Β· rw [zero_add] at hab; rwa [hab, zero_smul, one_smul, zero_add]
obtain rfl | hb' := hb.eq_or_lt
- Β· rw [add_zero] at hab
- rwa [hab, zero_smul, one_smul, add_zero]
+ Β· rw [add_zero] at hab; rwa [hab, zero_smul, one_smul, add_zero]
obtain rfl | hxy := eq_or_ne x y
Β· rwa [Convex.combo_self hab]
exact h hy hxy ha' hb' hab
@@ -352,8 +350,7 @@ 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] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{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)))) x s) -> (StarConvex.{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)))) y t) -> (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x y) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) s t))
Case conversion may be inaccurate. Consider using '#align star_convex.add StarConvex.addβ'. -/
theorem StarConvex.add {t : Set E} (hs : StarConvex π x s) (ht : StarConvex π y t) :
- StarConvex π (x + y) (s + t) := by
- rw [β add_image_prod]
+ StarConvex π (x + y) (s + t) := by rw [β add_image_prod];
exact (hs.prod ht).is_linear_image IsLinearMap.isLinearMap_add
#align star_convex.add StarConvex.add
@@ -508,11 +505,7 @@ theorem starConvex_zero_iff :
simpa only [sub_add_cancel, eq_self_iff_true, forall_true_left, zero_add, smul_zero] using
h (sub_nonneg_of_le haβ) haβ
Β· rw [smul_zero, zero_add]
- exact
- h hb
- (by
- rw [β hab]
- exact le_add_of_nonneg_left ha)
+ exact h hb (by rw [β hab]; exact le_add_of_nonneg_left ha)
#align star_convex_zero_iff starConvex_zero_iff
end AddCommMonoid
@@ -589,9 +582,7 @@ lean 3 declaration is
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (Neg.neg.{u1} E (NegZeroClass.toNeg.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) x) (Neg.neg.{u1} (Set.{u1} E) (Set.neg.{u1} E (NegZeroClass.toNeg.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))) s))
Case conversion may be inaccurate. Consider using '#align star_convex.neg StarConvex.negβ'. -/
-theorem StarConvex.neg (hs : StarConvex π x s) : StarConvex π (-x) (-s) :=
- by
- rw [β image_neg]
+theorem StarConvex.neg (hs : StarConvex π x s) : StarConvex π (-x) (-s) := by rw [β image_neg];
exact hs.is_linear_image IsLinearMap.isLinearMap_neg
#align star_convex.neg StarConvex.neg
@@ -602,9 +593,7 @@ but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) y t) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) x y) (HSub.hSub.{u1, u1, u1} (Set.{u1} E) (Set.{u1} E) (Set.{u1} E) (instHSub.{u1} (Set.{u1} E) (Set.sub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2))))) s t))
Case conversion may be inaccurate. Consider using '#align star_convex.sub StarConvex.subβ'. -/
theorem StarConvex.sub (hs : StarConvex π x s) (ht : StarConvex π y t) :
- StarConvex π (x - y) (s - t) := by
- simp_rw [sub_eq_add_neg]
- exact hs.add ht.neg
+ StarConvex π (x - y) (s - t) := by simp_rw [sub_eq_add_neg]; exact hs.add ht.neg
#align star_convex.sub StarConvex.sub
end AddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -246,10 +246,7 @@ theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
#align star_convex.mem StarConvex.mem
/- warning: star_convex_iff_forall_pos -> starConvex_iff_forall_pos 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
-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] {x : E} {s : Set.{u2} E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (One.toOfNat1.{u1} π (Semiring.toOne.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) a x) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) b y)) s))))
+<too large>
Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_pos starConvex_iff_forall_posβ'. -/
theorem starConvex_iff_forall_pos (hx : x β s) :
StarConvex π x s β β β¦yβ¦, y β s β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
@@ -266,10 +263,7 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
#align star_convex_iff_forall_pos starConvex_iff_forall_pos
/- warning: star_convex_iff_forall_ne_pos -> starConvex_iff_forall_ne_pos 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
-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] {x : E} {s : Set.{u2} E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (One.toOfNat1.{u1} π (Semiring.toOne.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) a x) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) b y)) s))))
+<too large>
Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_ne_pos starConvex_iff_forall_ne_posβ'. -/
theorem starConvex_iff_forall_ne_pos (hx : x β s) :
StarConvex π x s β
@@ -309,10 +303,7 @@ theorem starConvex_singleton (x : E) : StarConvex π x {x} :=
#align star_convex_singleton starConvex_singleton
/- warning: star_convex.linear_image -> StarConvex.linear_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (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), StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) (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))
-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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall (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), StarConvex.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (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))
+<too large>
Case conversion may be inaccurate. Consider using '#align star_convex.linear_image StarConvex.linear_imageβ'. -/
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
StarConvex π (f x) (s.image f) :=
@@ -334,10 +325,7 @@ theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf
#align star_convex.is_linear_image StarConvex.is_linear_image
/- warning: star_convex.linear_preimage -> StarConvex.linear_preimage 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] {x : E} {s : Set.{u3} F} (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), (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_3 _inst_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))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5), (StarConvex.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) s))
+<too large>
Case conversion may be inaccurate. Consider using '#align star_convex.linear_preimage StarConvex.linear_preimageβ'. -/
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
StarConvex π x (s.Preimage f) := by
@@ -573,10 +561,7 @@ theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t
#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_mem
/- warning: star_convex.affine_preimage -> StarConvex.affine_preimage 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)] {x : 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))) {s : Set.{u3} F}, (StarConvex.{u1, u3} π F (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} π F (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π E E F F (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)] {x : 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))) {s : Set.{u1} F}, (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{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 star_convex.affine_preimage StarConvex.affine_preimageβ'. -/
/-- The preimage of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : StarConvex π (f x) s) :
@@ -587,10 +572,7 @@ theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : Star
#align star_convex.affine_preimage StarConvex.affine_preimage
/- warning: star_convex.affine_image -> StarConvex.affine_image 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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u3} π F (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} π F (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5)))) (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 x) (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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (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 star_convex.affine_image StarConvex.affine_imageβ'. -/
/-- The image of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarConvex π x s) :
@@ -638,10 +620,7 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x : E} {s : Set E}
/- warning: star_convex_iff_div -> starConvex_iff_div is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) a) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) b) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) y)) s)))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) b) -> (LT.lt.{u2} π (Preorder.toLT.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))) (HDiv.hDiv.{u2, u2, u2} π π π (instHDiv.{u2} π (LinearOrderedField.toDiv.{u2} π _inst_1)) a (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) x) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))) (HDiv.hDiv.{u2, u2, u2} π π π (instHDiv.{u2} π (LinearOrderedField.toDiv.{u2} π _inst_1)) b (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) y)) s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align star_convex_iff_div starConvex_iff_divβ'. -/
/-- Alternative definition of star-convexity, using division. -/
theorem starConvex_iff_div :
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -312,7 +312,7 @@ theorem starConvex_singleton (x : E) : StarConvex π x {x} :=
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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (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), StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) (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))
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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall (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), StarConvex.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (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))
+ 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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall (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), StarConvex.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (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))
Case conversion may be inaccurate. Consider using '#align star_convex.linear_image StarConvex.linear_imageβ'. -/
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
StarConvex π (f x) (s.image f) :=
@@ -337,7 +337,7 @@ theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf
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] {x : E} {s : Set.{u3} F} (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), (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_3 _inst_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))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5), (StarConvex.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) s))
+ forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5), (StarConvex.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) x) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) s))
Case conversion may be inaccurate. Consider using '#align star_convex.linear_preimage StarConvex.linear_preimageβ'. -/
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
StarConvex π x (s.Preimage f) := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -312,7 +312,7 @@ theorem starConvex_singleton (x : E) : StarConvex π x {x} :=
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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (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), StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) (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))
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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall (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), StarConvex.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (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))
+ 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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall (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), StarConvex.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (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))
Case conversion may be inaccurate. Consider using '#align star_convex.linear_image StarConvex.linear_imageβ'. -/
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
StarConvex π (f x) (s.image f) :=
@@ -337,7 +337,7 @@ theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf
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] {x : E} {s : Set.{u3} F} (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), (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_3 _inst_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))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5), (StarConvex.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) s))
+ forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5), (StarConvex.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) x) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) s))
Case conversion may be inaccurate. Consider using '#align star_convex.linear_preimage StarConvex.linear_preimageβ'. -/
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
StarConvex π x (s.Preimage f) := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -576,7 +576,7 @@ theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t
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)] {x : 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))) {s : Set.{u3} F}, (StarConvex.{u1, u3} π F (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} π F (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π E E F F (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)] {x : 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))) {s : Set.{u1} F}, (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{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)] {x : 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))) {s : Set.{u1} F}, (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{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 star_convex.affine_preimage StarConvex.affine_preimageβ'. -/
/-- The preimage of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : StarConvex π (f x) s) :
@@ -590,7 +590,7 @@ theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : Star
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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u3} π F (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} π F (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5)))) (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 x) (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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) _inst_3) _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) x) (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 star_convex.affine_image StarConvex.affine_imageβ'. -/
/-- The image of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarConvex π x s) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -116,7 +116,7 @@ theorem StarConvex.openSegment_subset (h : StarConvex π x s) {y : E} (hy : y
/- warning: star_convex_iff_pointwise_add_subset -> starConvex_iff_pointwise_add_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) a (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x)) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) b s)) s))
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) a (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x)) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) b 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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedSemiring.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedSemiring.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) b) -> (Eq.{succ u2} π (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))))) a b) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} E) (Set.{u1} E) (Set.{u1} E) (instHAdd.{u1} (Set.{u1} E) (Set.add.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))))) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E _inst_4)) a (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E _inst_4)) b s)) s))
Case conversion may be inaccurate. Consider using '#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subsetβ'. -/
@@ -247,7 +247,7 @@ theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
/- warning: star_convex_iff_forall_pos -> starConvex_iff_forall_pos 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
+ 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
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] {x : E} {s : Set.{u2} E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (One.toOfNat1.{u1} π (Semiring.toOne.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) a x) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) b y)) s))))
Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_pos starConvex_iff_forall_posβ'. -/
@@ -267,7 +267,7 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
/- warning: star_convex_iff_forall_ne_pos -> starConvex_iff_forall_ne_pos 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
+ 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
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] {x : E} {s : Set.{u2} E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (One.toOfNat1.{u1} π (Semiring.toOne.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) a x) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) b y)) s))))
Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_ne_pos starConvex_iff_forall_ne_posβ'. -/
@@ -507,7 +507,7 @@ variable [AddCommMonoid E] [SMulWithZero π E] {s : Set E}
/- warning: star_convex_zero_iff -> starConvex_zero_iff is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : SMulWithZero.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))] {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) s) (forall {{x : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {{a : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) a (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3))) a x) s)))
Case conversion may be inaccurate. Consider using '#align star_convex_zero_iff starConvex_zero_iffβ'. -/
@@ -535,7 +535,7 @@ variable [AddCommGroup E] [AddCommGroup F] [Module π E] [Module π F] {x y
/- warning: star_convex.add_smul_mem -> StarConvex.add_smul_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
+ 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t y)) s))
Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_mem StarConvex.add_smul_memβ'. -/
@@ -550,7 +550,7 @@ theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t
/- warning: star_convex.smul_mem -> StarConvex.smul_mem 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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
+ 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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t x) s))
Case conversion may be inaccurate. Consider using '#align star_convex.smul_mem StarConvex.smul_memβ'. -/
@@ -560,7 +560,7 @@ theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π}
/- warning: star_convex.add_smul_sub_mem -> StarConvex.add_smul_sub_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
+ 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) y x))) s))
Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_memβ'. -/
@@ -639,7 +639,7 @@ variable [AddCommGroup E] [Module π E] {x : E} {s : Set E}
/- warning: star_convex_iff_div -> starConvex_iff_div is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) b) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) y)) s)))
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) a) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) b) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) y)) s)))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) b) -> (LT.lt.{u2} π (Preorder.toLT.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))) (HDiv.hDiv.{u2, u2, u2} π π π (instHDiv.{u2} π (LinearOrderedField.toDiv.{u2} π _inst_1)) a (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) x) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))) (HDiv.hDiv.{u2, u2, u2} π π π (instHDiv.{u2} π (LinearOrderedField.toDiv.{u2} π _inst_1)) b (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) y)) s)))
Case conversion may be inaccurate. Consider using '#align star_convex_iff_div starConvex_iff_divβ'. -/
@@ -665,7 +665,7 @@ theorem starConvex_iff_div :
/- warning: star_convex.mem_smul -> StarConvex.mem_smul is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) t) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))))) t s)))
Case conversion may be inaccurate. Consider using '#align star_convex.mem_smul StarConvex.mem_smulβ'. -/
@@ -690,7 +690,7 @@ section OrdConnected
/- warning: set.ord_connected.star_convex -> Set.OrdConnected.starConvex is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : OrderedAddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : OrderedSMul.{u1, u2} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3))] {x : E} {s : Set.{u2} E}, (Set.OrdConnected.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2)) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall (y : E), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Or (LE.le.{u2} E (Preorder.toLE.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) x y) (LE.le.{u2} E (Preorder.toLE.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) y x))) -> (StarConvex.{u1, u2} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s)
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : OrderedAddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : OrderedSMul.{u1, u2} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3))] {x : E} {s : Set.{u2} E}, (Set.OrdConnected.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2)) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall (y : E), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Or (LE.le.{u2} E (Preorder.toHasLe.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) x y) (LE.le.{u2} E (Preorder.toHasLe.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) y x))) -> (StarConvex.{u1, u2} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s)
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : OrderedAddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : OrderedSMul.{u2, u1} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) _inst_3))] {x : E} {s : Set.{u1} E}, (Set.OrdConnected.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2)) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall (y : E), (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (Or (LE.le.{u1} E (Preorder.toLE.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2))) x y) (LE.le.{u1} E (Preorder.toLE.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2))) y x))) -> (StarConvex.{u2, u1} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (OrderedAddCommMonoid.toAddCommMonoid.{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 (OrderedAddCommMonoid.toAddCommMonoid.{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 (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) x s)
Case conversion may be inaccurate. Consider using '#align set.ord_connected.star_convex Set.OrdConnected.starConvexβ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -159,17 +159,17 @@ theorem StarConvex.inter (hs : StarConvex π x s) (ht : StarConvex π x t) :
fun y hy a b ha hb hab => β¨hs hy.left ha hb hab, ht hy.right ha hb habβ©
#align star_convex.inter StarConvex.inter
-#print starConvex_interβ /-
-theorem starConvex_interβ {S : Set (Set E)} (h : β s β S, StarConvex π x s) :
+#print starConvex_sInter /-
+theorem starConvex_sInter {S : Set (Set E)} (h : β s β S, StarConvex π x s) :
StarConvex π x (ββ S) := fun y hy a b ha hb hab s hs => h s hs (hy s hs) ha hb hab
-#align star_convex_sInter starConvex_interβ
+#align star_convex_sInter starConvex_sInter
-/
-#print starConvex_interα΅’ /-
-theorem starConvex_interα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
+#print starConvex_iInter /-
+theorem starConvex_iInter {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) :=
- interβ_range s βΈ starConvex_interβ <| forall_range_iff.2 h
-#align star_convex_Inter starConvex_interα΅’
+ sInter_range s βΈ starConvex_sInter <| forall_range_iff.2 h
+#align star_convex_Inter starConvex_iInter
-/
/- warning: star_convex.union -> StarConvex.union is a dubious translation:
@@ -185,22 +185,22 @@ theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
Β· exact Or.inr (ht hy ha hb hab)
#align star_convex.union StarConvex.union
-#print starConvex_unionα΅’ /-
-theorem starConvex_unionα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
+#print starConvex_iUnion /-
+theorem starConvex_iUnion {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) := by
rintro y hy a b ha hb hab
rw [mem_Union] at hyβ’
obtain β¨i, hyβ© := hy
exact β¨i, hs i hy ha hb habβ©
-#align star_convex_Union starConvex_unionα΅’
+#align star_convex_Union starConvex_iUnion
-/
-#print starConvex_unionβ /-
-theorem starConvex_unionβ {S : Set (Set E)} (hS : β s β S, StarConvex π x s) :
+#print starConvex_sUnion /-
+theorem starConvex_sUnion {S : Set (Set E)} (hS : β s β S, StarConvex π x s) :
StarConvex π x (ββ S) := by
rw [sUnion_eq_Union]
- exact starConvex_unionα΅’ fun s => hS _ s.2
-#align star_convex_sUnion starConvex_unionβ
+ exact starConvex_iUnion fun s => hS _ s.2
+#align star_convex_sUnion starConvex_sUnion
-/
/- warning: star_convex.prod -> StarConvex.prod is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -509,7 +509,7 @@ variable [AddCommMonoid E] [SMulWithZero π E] {s : Set E}
lean 3 declaration is
forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : SMulWithZero.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))] {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) s) (forall {{x : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {{a : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) a (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3))) a x) s)))
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : SMulWithZero.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))] {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) s) (forall {{x : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {{a : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) a (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3))) a x) s)))
Case conversion may be inaccurate. Consider using '#align star_convex_zero_iff starConvex_zero_iffβ'. -/
theorem starConvex_zero_iff :
StarConvex π 0 s β β β¦x : Eβ¦, x β s β β β¦a : πβ¦, 0 β€ a β a β€ 1 β a β’ x β s :=
@@ -537,7 +537,7 @@ variable [AddCommGroup E] [AddCommGroup F] [Module π E] [Module π F] {x y
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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t y)) s))
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t y)) s))
Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_mem StarConvex.add_smul_memβ'. -/
theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ y β s :=
@@ -552,7 +552,7 @@ theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t
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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t x) s))
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t x) s))
Case conversion may be inaccurate. Consider using '#align star_convex.smul_mem StarConvex.smul_memβ'. -/
theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : t β’ x β s := by simpa using hs.add_smul_mem (by simpa using hx) htβ htβ
@@ -562,7 +562,7 @@ theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π}
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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) y x))) s))
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) y x))) s))
Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_memβ'. -/
theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ (y - x) β s :=
@@ -667,7 +667,7 @@ theorem starConvex_iff_div :
lean 3 declaration is
forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))) t) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))))) t s)))
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) t) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))))) t s)))
Case conversion may be inaccurate. Consider using '#align star_convex.mem_smul StarConvex.mem_smulβ'. -/
theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) : x β t β’ s :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -507,7 +507,7 @@ variable [AddCommMonoid E] [SMulWithZero π E] {s : Set E}
/- warning: star_convex_zero_iff -> starConvex_zero_iff is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : SMulWithZero.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))] {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) s) (forall {{x : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {{a : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) a (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3))) a x) s)))
Case conversion may be inaccurate. Consider using '#align star_convex_zero_iff starConvex_zero_iffβ'. -/
@@ -535,7 +535,7 @@ variable [AddCommGroup E] [AddCommGroup F] [Module π E] [Module π F] {x y
/- warning: star_convex.add_smul_mem -> StarConvex.add_smul_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
+ 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t y)) s))
Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_mem StarConvex.add_smul_memβ'. -/
@@ -550,7 +550,7 @@ theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t
/- warning: star_convex.smul_mem -> StarConvex.smul_mem 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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
+ 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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t x) s))
Case conversion may be inaccurate. Consider using '#align star_convex.smul_mem StarConvex.smul_memβ'. -/
@@ -560,7 +560,7 @@ theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π}
/- warning: star_convex.add_smul_sub_mem -> StarConvex.add_smul_sub_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
+ 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) y x))) s))
Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_memβ'. -/
@@ -665,7 +665,7 @@ theorem starConvex_iff_div :
/- warning: star_convex.mem_smul -> StarConvex.mem_smul is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))) t) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))))) t s)))
Case conversion may be inaccurate. Consider using '#align star_convex.mem_smul StarConvex.mem_smulβ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/55d771df074d0dd020139ee1cd4b95521422df9f
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies
! This file was ported from Lean 3 source module analysis.convex.star
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
+! leanprover-community/mathlib commit cb3ceec8485239a61ed51d944cb9a95b68c6bafc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Analysis.Convex.Segment
/-!
# Star-convex sets
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This files defines star-convex sets (aka star domains, star-shaped set, radially convex set).
A set is star-convex at `x` if every segment from `x` to a point in the set is contained in the set.
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -65,14 +65,22 @@ section SMul
variable (π) [SMul π E] [SMul π F] (x : E) (s : Set E)
+#print StarConvex /-
/-- Star-convexity of sets. `s` is star-convex at `x` if every segment from `x` to a point in `s` is
contained in `s`. -/
def StarConvex : Prop :=
β β¦y : Eβ¦, y β s β β β¦a b : πβ¦, 0 β€ a β 0 β€ b β a + b = 1 β a β’ x + b β’ y β s
#align star_convex StarConvex
+-/
variable {π x s} {t : Set E}
+/- warning: star_convex_iff_segment_subset -> starConvex_iff_segment_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (segment.{u1, u2} π E _inst_1 _inst_2 _inst_4 x y) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) (forall {{y : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (segment.{u2, u1} π E _inst_1 _inst_2 _inst_4 x y) s))
+Case conversion may be inaccurate. Consider using '#align star_convex_iff_segment_subset starConvex_iff_segment_subsetβ'. -/
theorem starConvex_iff_segment_subset : StarConvex π x s β β β¦yβ¦, y β s β [x -[π] y] β s :=
by
constructor
@@ -82,15 +90,33 @@ theorem starConvex_iff_segment_subset : StarConvex π x s β β β¦yβ¦, y
exact h hy β¨a, b, ha, hb, hab, rflβ©
#align star_convex_iff_segment_subset starConvex_iff_segment_subset
+/- warning: star_convex.segment_subset -> StarConvex.segment_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (segment.{u1, u2} π E _inst_1 _inst_2 _inst_4 x y) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (segment.{u2, u1} π E _inst_1 _inst_2 _inst_4 x y) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.segment_subset StarConvex.segment_subsetβ'. -/
theorem StarConvex.segment_subset (h : StarConvex π x s) {y : E} (hy : y β s) : [x -[π] y] β s :=
starConvex_iff_segment_subset.1 h hy
#align star_convex.segment_subset StarConvex.segment_subset
+/- warning: star_convex.open_segment_subset -> StarConvex.openSegment_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (openSegment.{u1, u2} π E _inst_1 _inst_2 _inst_4 x y) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (forall {y : E}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (openSegment.{u2, u1} π E _inst_1 _inst_2 _inst_4 x y) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.open_segment_subset StarConvex.openSegment_subsetβ'. -/
theorem StarConvex.openSegment_subset (h : StarConvex π x s) {y : E} (hy : y β s) :
openSegment π x y β s :=
(openSegment_subset_segment π x y).trans (h.segment_subset hy)
#align star_convex.open_segment_subset StarConvex.openSegment_subset
+/- warning: star_convex_iff_pointwise_add_subset -> starConvex_iff_pointwise_add_subset 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) a (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x)) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E _inst_4) b 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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) (forall {{a : π}} {{b : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedSemiring.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedSemiring.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) b) -> (Eq.{succ u2} π (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))))) a b) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (Semiring.toOne.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))))) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} E) (Set.{u1} E) (Set.{u1} E) (instHAdd.{u1} (Set.{u1} E) (Set.add.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))))) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E _inst_4)) a (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E _inst_4)) b s)) s))
+Case conversion may be inaccurate. Consider using '#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subsetβ'. -/
/-- Alternative definition of star-convexity, in terms of pointwise set operations. -/
theorem starConvex_iff_pointwise_add_subset :
StarConvex π x s β β β¦a b : πβ¦, 0 β€ a β 0 β€ b β a + b = 1 β a β’ {x} + b β’ s β s :=
@@ -102,25 +128,53 @@ theorem starConvex_iff_pointwise_add_subset :
exact hA hv ha hb hab
#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subset
+/- warning: star_convex_empty -> starConvex_empty 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 : SMul.{u1, u2} π E] (x : E), StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (EmptyCollection.emptyCollection.{u2} (Set.{u2} E) (Set.hasEmptyc.{u2} E))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] (x : E), StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.instEmptyCollectionSet.{u1} E))
+Case conversion may be inaccurate. Consider using '#align star_convex_empty starConvex_emptyβ'. -/
theorem starConvex_empty (x : E) : StarConvex π x β
:= fun y hy => hy.elim
#align star_convex_empty starConvex_empty
+/- warning: star_convex_univ -> starConvex_univ 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 : SMul.{u1, u2} π E] (x : E), StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (Set.univ.{u2} E)
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : SMul.{u2, u1} π E] (x : E), StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (Set.univ.{u1} E)
+Case conversion may be inaccurate. Consider using '#align star_convex_univ starConvex_univβ'. -/
theorem starConvex_univ (x : E) : StarConvex π x univ := fun _ _ _ _ _ _ _ => trivial
#align star_convex_univ starConvex_univ
+/- warning: star_convex.inter -> StarConvex.inter 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (Inter.inter.{u2} (Set.{u2} E) (Set.hasInter.{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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (Inter.inter.{u1} (Set.{u1} E) (Set.instInterSet.{u1} E) s t))
+Case conversion may be inaccurate. Consider using '#align star_convex.inter StarConvex.interβ'. -/
theorem StarConvex.inter (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s β© t) :=
fun y hy a b ha hb hab => β¨hs hy.left ha hb hab, ht hy.right ha hb habβ©
#align star_convex.inter StarConvex.inter
+#print starConvex_interβ /-
theorem starConvex_interβ {S : Set (Set E)} (h : β s β S, StarConvex π x s) :
StarConvex π x (ββ S) := fun y hy a b ha hb hab s hs => h s hs (hy s hs) ha hb hab
#align star_convex_sInter starConvex_interβ
+-/
+#print starConvex_interα΅’ /-
theorem starConvex_interα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) :=
interβ_range s βΈ starConvex_interβ <| forall_range_iff.2 h
#align star_convex_Inter starConvex_interα΅’
+-/
+/- warning: star_convex.union -> StarConvex.union 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 : SMul.{u1, u2} π E] {x : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x (Union.union.{u2} (Set.{u2} E) (Set.hasUnion.{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 : SMul.{u2, u1} π E] {x : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x t) -> (StarConvex.{u2, u1} π E _inst_1 _inst_2 _inst_4 x (Union.union.{u1} (Set.{u1} E) (Set.instUnionSet.{u1} E) s t))
+Case conversion may be inaccurate. Consider using '#align star_convex.union StarConvex.unionβ'. -/
theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s βͺ t) :=
by
rintro y (hy | hy) a b ha hb hab
@@ -128,6 +182,7 @@ theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
Β· exact Or.inr (ht hy ha hb hab)
#align star_convex.union StarConvex.union
+#print starConvex_unionα΅’ /-
theorem starConvex_unionα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) := by
rintro y hy a b ha hb hab
@@ -135,19 +190,34 @@ theorem starConvex_unionα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarCo
obtain β¨i, hyβ© := hy
exact β¨i, hs i hy ha hb habβ©
#align star_convex_Union starConvex_unionα΅’
+-/
+#print starConvex_unionβ /-
theorem starConvex_unionβ {S : Set (Set E)} (hS : β s β S, StarConvex π x s) :
StarConvex π x (ββ S) := by
rw [sUnion_eq_Union]
exact starConvex_unionα΅’ fun s => hS _ s.2
#align star_convex_sUnion starConvex_unionβ
+-/
+/- warning: star_convex.prod -> StarConvex.prod 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 : SMul.{u1, u2} π E] [_inst_5 : SMul.{u1, u3} π F] {x : E} {y : F} {s : Set.{u2} E} {t : Set.{u3} F}, (StarConvex.{u1, u2} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u3} π F _inst_1 _inst_3 _inst_5 y t) -> (StarConvex.{u1, max u2 u3} π (Prod.{u2, u3} E F) _inst_1 (Prod.addCommMonoid.{u2, u3} E F _inst_2 _inst_3) (Prod.smul.{u1, u2, u3} π E F _inst_4 _inst_5) (Prod.mk.{u2, u3} E F x y) (Set.prod.{u2, u3} E F s t))
+but is expected to have type
+ forall {π : Type.{u1}} {E : Type.{u3}} {F : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u3} E] [_inst_3 : AddCommMonoid.{u2} F] [_inst_4 : SMul.{u1, u3} π E] [_inst_5 : SMul.{u1, u2} π F] {x : E} {y : F} {s : Set.{u3} E} {t : Set.{u2} F}, (StarConvex.{u1, u3} π E _inst_1 _inst_2 _inst_4 x s) -> (StarConvex.{u1, u2} π F _inst_1 _inst_3 _inst_5 y t) -> (StarConvex.{u1, max u2 u3} π (Prod.{u3, u2} E F) _inst_1 (Prod.instAddCommMonoidSum.{u3, u2} E F _inst_2 _inst_3) (Prod.smul.{u1, u3, u2} π E F _inst_4 _inst_5) (Prod.mk.{u3, u2} E F x y) (Set.prod.{u3, u2} E F s t))
+Case conversion may be inaccurate. Consider using '#align star_convex.prod StarConvex.prodβ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem StarConvex.prod {y : F} {s : Set E} {t : Set F} (hs : StarConvex π x s)
(ht : StarConvex π y t) : StarConvex π (x, y) (s ΓΛ’ t) := fun y hy a b ha hb hab =>
β¨hs hy.1 ha hb hab, ht hy.2 ha hb habβ©
#align star_convex.prod StarConvex.prod
+/- warning: star_convex_pi -> starConvex_pi is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} π] {ΞΉ : Type.{u2}} {E : ΞΉ -> Type.{u3}} [_inst_6 : forall (i : ΞΉ), AddCommMonoid.{u3} (E i)] [_inst_7 : forall (i : ΞΉ), SMul.{u1, u3} π (E i)] {x : forall (i : ΞΉ), E i} {s : Set.{u2} ΞΉ} {t : forall (i : ΞΉ), Set.{u3} (E i)}, (forall {{i : ΞΉ}}, (Membership.Mem.{u2, u2} ΞΉ (Set.{u2} ΞΉ) (Set.hasMem.{u2} ΞΉ) i s) -> (StarConvex.{u1, u3} π (E i) _inst_1 (_inst_6 i) (_inst_7 i) (x i) (t i))) -> (StarConvex.{u1, max u2 u3} π (forall (i : ΞΉ), E i) _inst_1 (Pi.addCommMonoid.{u2, u3} ΞΉ (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_6 i)) (Pi.instSMul.{u2, u3, u1} ΞΉ π (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_7 i)) x (Set.pi.{u2, u3} ΞΉ (fun (i : ΞΉ) => E i) s t))
+but is expected to have type
+ forall {π : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} π] {ΞΉ : Type.{u3}} {E : ΞΉ -> Type.{u2}} [_inst_6 : forall (i : ΞΉ), AddCommMonoid.{u2} (E i)] [_inst_7 : forall (i : ΞΉ), SMul.{u1, u2} π (E i)] {x : forall (i : ΞΉ), E i} {s : Set.{u3} ΞΉ} {t : forall (i : ΞΉ), Set.{u2} (E i)}, (forall {{i : ΞΉ}}, (Membership.mem.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.instMembershipSet.{u3} ΞΉ) i s) -> (StarConvex.{u1, u2} π (E i) _inst_1 (_inst_6 i) (_inst_7 i) (x i) (t i))) -> (StarConvex.{u1, max u3 u2} π (forall (i : ΞΉ), E i) _inst_1 (Pi.addCommMonoid.{u3, u2} ΞΉ (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_6 i)) (Pi.instSMul.{u3, u2, u1} ΞΉ π (fun (i : ΞΉ) => E i) (fun (i : ΞΉ) => _inst_7 i)) x (Set.pi.{u3, u2} ΞΉ (fun (i : ΞΉ) => E i) s t))
+Case conversion may be inaccurate. Consider using '#align star_convex_pi starConvex_piβ'. -/
theorem starConvex_pi {ΞΉ : Type _} {E : ΞΉ β Type _} [β i, AddCommMonoid (E i)] [β i, SMul π (E i)]
{x : β i, E i} {s : Set ΞΉ} {t : β i, Set (E i)} (ht : β β¦iβ¦, i β s β StarConvex π (x i) (t i)) :
StarConvex π x (s.pi t) := fun y hy a b ha hb hab i hi => ht hi (hy i hi) ha hb hab
@@ -159,6 +229,12 @@ section Module
variable [Module π E] [Module π F] {x y z : E} {s : Set E}
+/- warning: star_convex.mem -> StarConvex.mem 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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (Set.Nonempty.{u2} E s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x 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] {x : E} {s : Set.{u1} E}, (StarConvex.{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)))) x s) -> (Set.Nonempty.{u1} E s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s)
+Case conversion may be inaccurate. Consider using '#align star_convex.mem StarConvex.memβ'. -/
theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
by
obtain β¨y, hyβ© := h
@@ -166,6 +242,12 @@ theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
rw [one_smul, zero_smul, add_zero]
#align star_convex.mem StarConvex.mem
+/- warning: star_convex_iff_forall_pos -> starConvex_iff_forall_pos 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
+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] {x : E} {s : Set.{u2} E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (One.toOfNat1.{u1} π (Semiring.toOne.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) a x) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) b y)) s))))
+Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_pos starConvex_iff_forall_posβ'. -/
theorem starConvex_iff_forall_pos (hx : x β s) :
StarConvex π x s β β β¦yβ¦, y β s β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
by
@@ -180,6 +262,12 @@ theorem starConvex_iff_forall_pos (hx : x β s) :
exact h hy ha hb hab
#align star_convex_iff_forall_pos starConvex_iff_forall_pos
+/- warning: star_convex_iff_forall_ne_pos -> starConvex_iff_forall_ne_pos 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] {x : E} {s : Set.{u2} E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommMonoid.toPartialOrder.{u1} π (OrderedSemiring.toOrderedAddCommMonoid.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} π (NonAssocSemiring.toAddCommMonoidWithOne.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) a x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4)))) b y)) s))))
+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] {x : E} {s : Set.{u2} E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Iff (StarConvex.{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)))) x s) (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : π}} {{b : π}}, (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) a) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedSemiring.toPartialOrder.{u1} π _inst_1))) (OfNat.ofNat.{u1} π 0 (Zero.toOfNat0.{u1} π (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) b) -> (Eq.{succ u1} π (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toAdd.{u1} π (NonUnitalNonAssocSemiring.toDistrib.{u1} π (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))))) a b) (OfNat.ofNat.{u1} π 1 (One.toOfNat1.{u1} π (Semiring.toOne.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) a x) (HSMul.hSMul.{u1, u2, u2} π E E (instHSMul.{u1, u2} π E (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))))) b y)) s))))
+Case conversion may be inaccurate. Consider using '#align star_convex_iff_forall_ne_pos starConvex_iff_forall_ne_posβ'. -/
theorem starConvex_iff_forall_ne_pos (hx : x β s) :
StarConvex π x s β
β β¦yβ¦, y β s β x β y β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
@@ -197,18 +285,32 @@ theorem starConvex_iff_forall_ne_pos (hx : x β s) :
exact h hy hxy ha' hb' hab
#align star_convex_iff_forall_ne_pos starConvex_iff_forall_ne_pos
+#print starConvex_iff_openSegment_subset /-
theorem starConvex_iff_openSegment_subset (hx : x β s) :
StarConvex π x s β β β¦yβ¦, y β s β openSegment π x y β s :=
starConvex_iff_segment_subset.trans <|
forallβ_congr fun y hy => (openSegment_subset_iff_segment_subset hx hy).symm
#align star_convex_iff_open_segment_subset starConvex_iff_openSegment_subset
+-/
+/- warning: star_convex_singleton -> starConvex_singleton 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] (x : E), StarConvex.{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)))) x (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x)
+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] (x : E), StarConvex.{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)))) x (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)
+Case conversion may be inaccurate. Consider using '#align star_convex_singleton starConvex_singletonβ'. -/
theorem starConvex_singleton (x : E) : StarConvex π x {x} :=
by
rintro y (rfl : y = x) a b ha hb hab
exact Convex.combo_self hab _
#align star_convex_singleton starConvex_singleton
+/- warning: star_convex.linear_image -> StarConvex.linear_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (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), StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) (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))
+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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall (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), StarConvex.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u3, u1} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (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))
+Case conversion may be inaccurate. Consider using '#align star_convex.linear_image StarConvex.linear_imageβ'. -/
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
StarConvex π (f x) (s.image f) :=
by
@@ -217,11 +319,23 @@ theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F
exact β¨a β’ x + b β’ y', hs hy' ha hb hab, by rw [f.map_add, f.map_smul, f.map_smul]β©
#align star_convex.linear_image StarConvex.linear_image
+/- warning: star_convex.is_linear_image -> StarConvex.is_linear_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall {f : E -> F}, (IsLinearMap.{u1, u2, u3} π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (f x) (Set.image.{u2, u3} E F f 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] {x : E} {s : Set.{u2} E}, (StarConvex.{u3, u2} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} π E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_4)))) x s) -> (forall {f : E -> F}, (IsLinearMap.{u3, u2, u1} π E F (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{u3, u1} π F _inst_1 _inst_3 (SMulZeroClass.toSMul.{u3, u1} π F (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} π F (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1))) (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} π F (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π _inst_1)) (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_3)) (Module.toMulActionWithZero.{u3, u1} π F (OrderedSemiring.toSemiring.{u3} π _inst_1) _inst_3 _inst_5)))) (f x) (Set.image.{u2, u1} E F f s)))
+Case conversion may be inaccurate. Consider using '#align star_convex.is_linear_image StarConvex.is_linear_imageβ'. -/
theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf : IsLinearMap π f) :
StarConvex π (f x) (f '' s) :=
hs.linear_image <| hf.mk' f
#align star_convex.is_linear_image StarConvex.is_linear_image
+/- warning: star_convex.linear_preimage -> StarConvex.linear_preimage 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] {x : E} {s : Set.{u3} F} (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), (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (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 x) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_3 _inst_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))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_3 _inst_4 _inst_5), (StarConvex.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) _inst_3)) (Module.toMulActionWithZero.{u2, u3} π ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) x) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _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.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.linear_preimage StarConvex.linear_preimageβ'. -/
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
StarConvex π x (s.Preimage f) := by
intro y hy a b ha hb hab
@@ -229,17 +343,35 @@ theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : Star
exact hs hy ha hb hab
#align star_convex.linear_preimage StarConvex.linear_preimage
+/- warning: star_convex.is_linear_preimage -> StarConvex.is_linear_preimage 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] {x : E} {s : Set.{u3} F} {f : E -> F}, (StarConvex.{u1, u3} π F _inst_1 _inst_3 (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_3 _inst_5)))) (f x) s) -> (IsLinearMap.{u1, u2, u3} π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{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)))) x (Set.preimage.{u2, u3} E F f s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3] {x : E} {s : Set.{u3} F} {f : E -> F}, (StarConvex.{u2, u3} π F _inst_1 _inst_3 (SMulZeroClass.toSMul.{u2, u3} π F (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u3} π F (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u3} π F (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3)) (Module.toMulActionWithZero.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_3 _inst_5)))) (f x) s) -> (IsLinearMap.{u2, u1, u3} π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3 _inst_4 _inst_5 f) -> (StarConvex.{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)))) x (Set.preimage.{u1, u3} E F f s))
+Case conversion may be inaccurate. Consider using '#align star_convex.is_linear_preimage StarConvex.is_linear_preimageβ'. -/
theorem StarConvex.is_linear_preimage {s : Set F} {f : E β F} (hs : StarConvex π (f x) s)
(hf : IsLinearMap π f) : StarConvex π x (preimage f s) :=
hs.linear_preimage <| hf.mk' f
#align star_convex.is_linear_preimage StarConvex.is_linear_preimage
+/- warning: star_convex.add -> StarConvex.add 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] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{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)))) x s) -> (StarConvex.{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)))) y t) -> (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x y) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) 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] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{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)))) x s) -> (StarConvex.{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)))) y t) -> (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x y) (HAdd.hAdd.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHAdd.{u2} (Set.{u2} E) (Set.add.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))) s t))
+Case conversion may be inaccurate. Consider using '#align star_convex.add StarConvex.addβ'. -/
theorem StarConvex.add {t : Set E} (hs : StarConvex π x s) (ht : StarConvex π y t) :
StarConvex π (x + y) (s + t) := by
rw [β add_image_prod]
exact (hs.prod ht).is_linear_image IsLinearMap.isLinearMap_add
#align star_convex.add StarConvex.add
+/- warning: star_convex.add_left -> StarConvex.add_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) (Set.image.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) 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] {x : E} {s : Set.{u1} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) (Set.image.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.add_left StarConvex.add_leftβ'. -/
theorem StarConvex.add_left (hs : StarConvex π x s) (z : E) :
StarConvex π (z + x) ((fun x => z + x) '' s) :=
by
@@ -249,6 +381,12 @@ theorem StarConvex.add_left (hs : StarConvex π x s) (z : E) :
rw [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul]
#align star_convex.add_left StarConvex.add_left
+/- warning: star_convex.add_right -> StarConvex.add_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] {x : E} {s : Set.{u2} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) (Set.image.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) 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] {x : E} {s : Set.{u1} E}, (StarConvex.{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)))) x s) -> (forall (z : E), StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) (Set.image.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.add_right StarConvex.add_rightβ'. -/
theorem StarConvex.add_right (hs : StarConvex π x s) (z : E) :
StarConvex π (x + z) ((fun x => x + z) '' s) :=
by
@@ -258,6 +396,12 @@ theorem StarConvex.add_right (hs : StarConvex π x s) (z : E) :
rw [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul]
#align star_convex.add_right StarConvex.add_right
+/- warning: star_convex.preimage_add_right -> StarConvex.preimage_add_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] {x : E} {z : E} {s : Set.{u2} E}, (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z x) 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] {x : E} {z : E} {s : Set.{u1} E}, (StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z x) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.preimage_add_right StarConvex.preimage_add_rightβ'. -/
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
StarConvex π x ((fun x => z + x) β»ΒΉ' s) :=
@@ -267,6 +411,12 @@ theorem StarConvex.preimage_add_right (hs : StarConvex π (z + x) s) :
rwa [smul_add, smul_add, add_add_add_comm, β add_smul, hab, one_smul] at h
#align star_convex.preimage_add_right StarConvex.preimage_add_right
+/- warning: star_convex.preimage_add_left -> StarConvex.preimage_add_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] {x : E} {z : E} {s : Set.{u2} E}, (StarConvex.{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)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) s) -> (StarConvex.{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)))) x (Set.preimage.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) x z) 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] {x : E} {z : E} {s : Set.{u1} E}, (StarConvex.{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)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) s) -> (StarConvex.{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)))) x (Set.preimage.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) x z) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.preimage_add_left StarConvex.preimage_add_leftβ'. -/
/-- The translation of a star-convex set is also star-convex. -/
theorem StarConvex.preimage_add_left (hs : StarConvex π (x + z) s) :
StarConvex π x ((fun x => x + z) β»ΒΉ' s) :=
@@ -283,6 +433,12 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x y : E}
+/- warning: star_convex.sub' -> StarConvex.sub' is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {y : E} {s : Set.{u2} (Prod.{u2, u2} E E)}, (StarConvex.{u1, u2} π (Prod.{u2, u2} E E) _inst_1 (Prod.addCommMonoid.{u2, u2} E E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)) (Prod.smul.{u1, u2, u2} π E E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) (Prod.mk.{u2, u2} E E x y) s) -> (StarConvex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) x y) (Set.image.{u2, u2} (Prod.{u2, u2} E E) E (fun (x : Prod.{u2, u2} E E) => HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) (Prod.fst.{u2, u2} E E x) (Prod.snd.{u2, u2} E E x)) s))
+but is expected to have type
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {y : E} {s : Set.{u2} (Prod.{u2, u2} E E)}, (StarConvex.{u1, u2} π (Prod.{u2, u2} E E) _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} E E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)) (Prod.smul.{u1, u2, u2} π E E (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) (Prod.mk.{u2, u2} E E x y) s) -> (StarConvex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) x y) (Set.image.{u2, u2} (Prod.{u2, u2} E E) E (fun (x : Prod.{u2, u2} E E) => HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) (Prod.fst.{u2, u2} E E x) (Prod.snd.{u2, u2} E E x)) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.sub' StarConvex.sub'β'. -/
theorem StarConvex.sub' {s : Set (E Γ E)} (hs : StarConvex π (x, y) s) :
StarConvex π (x - y) ((fun x : E Γ E => x.1 - x.2) '' s) :=
hs.is_linear_image IsLinearMap.isLinearMap_sub
@@ -300,15 +456,33 @@ section AddCommMonoid
variable [AddCommMonoid E] [AddCommMonoid F] [Module π E] [Module π F] {x : E} {s : Set E}
+/- warning: star_convex.smul -> StarConvex.smul is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (c : π), StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x) (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4))))) c s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (c : π), StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x) (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))))) c s))
+Case conversion may be inaccurate. Consider using '#align star_convex.smul StarConvex.smulβ'. -/
theorem StarConvex.smul (hs : StarConvex π x s) (c : π) : StarConvex π (c β’ x) (c β’ s) :=
hs.linear_image <| LinearMap.lsmul _ _ c
#align star_convex.smul StarConvex.smul
+/- warning: star_convex.preimage_smul -> StarConvex.preimage_smul is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2] {x : E} {s : Set.{u2} E} {c : π}, (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x) s) -> (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) x (Set.preimage.{u2, u2} E E (fun (z : E) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c z) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2] {x : E} {s : Set.{u1} E} {c : π}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x) s) -> (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) x (Set.preimage.{u1, u1} E E (fun (z : E) => HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c z) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.preimage_smul StarConvex.preimage_smulβ'. -/
theorem StarConvex.preimage_smul {c : π} (hs : StarConvex π (c β’ x) s) :
StarConvex π x ((fun z => c β’ z) β»ΒΉ' s) :=
hs.linear_preimage (LinearMap.lsmul _ _ c)
#align star_convex.preimage_smul StarConvex.preimage_smul
+/- warning: star_convex.affinity -> StarConvex.affinity is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (z : E) (c : π), StarConvex.{u1, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u1} π _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} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x)) (Set.image.{u2, u2} E E (fun (x : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π (OrderedCommSemiring.toOrderedSemiring.{u1} π _inst_1)) _inst_2 _inst_4)))) c x)) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) x s) -> (forall (z : E) (c : π), StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1) _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4)))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x)) (Set.image.{u1, u1} E E (fun (x : E) => HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) z (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommSemiring.toCommMonoidWithZero.{u2} π (OrderedCommSemiring.toCommSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedCommSemiring.toOrderedSemiring.{u2} π _inst_1)) _inst_2 _inst_4))))) c x)) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.affinity StarConvex.affinityβ'. -/
theorem StarConvex.affinity (hs : StarConvex π x s) (z : E) (c : π) :
StarConvex π (z + c β’ x) ((fun x => z + c β’ x) '' s) :=
by
@@ -328,6 +502,12 @@ section AddCommMonoid
variable [AddCommMonoid E] [SMulWithZero π E] {s : Set E}
+/- warning: star_convex_zero_iff -> starConvex_zero_iff is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : SMulWithZero.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))] {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _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} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{a : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) a (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) _inst_3)) a x) s)))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : SMulWithZero.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))] {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))) s) (forall {{x : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {{a : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) a (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (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} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) _inst_3))) a x) s)))
+Case conversion may be inaccurate. Consider using '#align star_convex_zero_iff starConvex_zero_iffβ'. -/
theorem starConvex_zero_iff :
StarConvex π 0 s β β β¦x : Eβ¦, x β s β β β¦a : πβ¦, 0 β€ a β a β€ 1 β a β’ x β s :=
by
@@ -350,6 +530,12 @@ section AddCommGroup
variable [AddCommGroup E] [AddCommGroup F] [Module π E] [Module π F] {x y : E} {s t : Set E}
+/- warning: star_convex.add_smul_mem -> StarConvex.add_smul_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t y)) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x y) s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t y)) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_mem StarConvex.add_smul_memβ'. -/
theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ y β s :=
by
@@ -359,10 +545,22 @@ theorem StarConvex.add_smul_mem (hs : StarConvex π x s) (hy : x + y β s) {t
exact hs hy (sub_nonneg_of_le htβ) htβ (sub_add_cancel _ _)
#align star_convex.add_smul_mem StarConvex.add_smul_mem
+/- warning: star_convex.smul_mem -> StarConvex.smul_mem 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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t x) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t x) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.smul_mem StarConvex.smul_memβ'. -/
theorem StarConvex.smul_mem (hs : StarConvex π 0 s) (hx : x β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : t β’ x β s := by simpa using hs.add_smul_mem (by simpa using hx) htβ htβ
#align star_convex.smul_mem StarConvex.smul_mem
+/- warning: star_convex.add_smul_sub_mem -> StarConvex.add_smul_sub_mem 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)] {x : E} {y : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (OrderedRing.toOrderedAddCommGroup.{u1} π _inst_1)))) t (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (OrderedRing.toRing.{u1} π _inst_1))))))))) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) x (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) t (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) y x))) s))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))))) t) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (OrderedRing.toPartialOrder.{u2} π _inst_1))) t (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (OrderedRing.toRing.{u2} π _inst_1)))))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) x (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4))))) t (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) y x))) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_memβ'. -/
theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t : π} (htβ : 0 β€ t)
(htβ : t β€ 1) : x + t β’ (y - x) β s :=
by
@@ -371,6 +569,12 @@ theorem StarConvex.add_smul_sub_mem (hs : StarConvex π x s) (hy : y β s) {t
exact mem_image_of_mem _ β¨htβ, htββ©
#align star_convex.add_smul_sub_mem StarConvex.add_smul_sub_mem
+/- warning: star_convex.affine_preimage -> StarConvex.affine_preimage 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)] {x : 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))) {s : Set.{u3} F}, (StarConvex.{u1, u3} π F (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} π F (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} π E E F F (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)] {x : 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))) {s : Set.{u1} F}, (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) _inst_5)))) (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 x) s) -> (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x (Set.preimage.{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 star_convex.affine_preimage StarConvex.affine_preimageβ'. -/
/-- The preimage of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : StarConvex π (f x) s) :
StarConvex π x (f β»ΒΉ' s) := by
@@ -379,6 +583,12 @@ theorem StarConvex.affine_preimage (f : E βα΅[π] F) {s : Set F} (hs : Star
exact hs hy ha hb hab
#align star_convex.affine_preimage StarConvex.affine_preimage
+/- warning: star_convex.affine_image -> StarConvex.affine_image 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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u3} π F (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) (SMulZeroClass.toHasSmul.{u1, u3} π F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} π F (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} π F (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} π F (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_5)))) (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 x) (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)] {x : 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))) {s : Set.{u2} E}, (StarConvex.{u3, u2} π E (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedRing.toOrderedSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) (SMulZeroClass.toSMul.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (MonoidWithZero.toZero.{u3} π (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (Semiring.toMonoidWithZero.{u3} π (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1))) (NegZeroClass.toZero.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3))))) (Module.toMulActionWithZero.{u3, u1} π ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (OrderedSemiring.toSemiring.{u3} π (OrderedRing.toOrderedSemiring.{u3} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) _inst_3) _inst_5)))) (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 x) (Set.image.{u2, u1} E ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) x) (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 star_convex.affine_image StarConvex.affine_imageβ'. -/
/-- The image of a star-convex set under an affine map is star-convex. -/
theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarConvex π x s) :
StarConvex π (f x) (f '' s) :=
@@ -388,12 +598,24 @@ theorem StarConvex.affine_image (f : E βα΅[π] F) {s : Set E} (hs : StarCon
rw [Convex.combo_affine_apply hab, hy'f]
#align star_convex.affine_image StarConvex.affine_image
+/- warning: star_convex.neg -> StarConvex.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)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (Neg.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))) x) (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))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (Neg.neg.{u1} E (NegZeroClass.toNeg.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) x) (Neg.neg.{u1} (Set.{u1} E) (Set.neg.{u1} E (NegZeroClass.toNeg.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))) s))
+Case conversion may be inaccurate. Consider using '#align star_convex.neg StarConvex.negβ'. -/
theorem StarConvex.neg (hs : StarConvex π x s) : StarConvex π (-x) (-s) :=
by
rw [β image_neg]
exact hs.is_linear_image IsLinearMap.isLinearMap_neg
#align star_convex.neg StarConvex.neg
+/- warning: star_convex.sub -> StarConvex.sub 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)] {x : E} {y : E} {s : Set.{u2} E} {t : Set.{u2} E}, (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) y t) -> (StarConvex.{u1, u2} π E (OrderedRing.toOrderedSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (OrderedRing.toRing.{u1} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))) x y) (HSub.hSub.{u2, u2, u2} (Set.{u2} E) (Set.{u2} E) (Set.{u2} E) (instHSub.{u2} (Set.{u2} E) (Set.sub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))) s t))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {y : E} {s : Set.{u1} E} {t : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) x s) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) y t) -> (StarConvex.{u2, u1} π E (OrderedRing.toOrderedSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π (OrderedRing.toOrderedSemiring.{u2} π _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_4)))) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))) x y) (HSub.hSub.{u1, u1, u1} (Set.{u1} E) (Set.{u1} E) (Set.{u1} E) (instHSub.{u1} (Set.{u1} E) (Set.sub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2))))) s t))
+Case conversion may be inaccurate. Consider using '#align star_convex.sub StarConvex.subβ'. -/
theorem StarConvex.sub (hs : StarConvex π x s) (ht : StarConvex π y t) :
StarConvex π (x - y) (s - t) := by
simp_rw [sub_eq_add_neg]
@@ -412,6 +634,12 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x : E} {s : Set E}
+/- warning: star_convex_iff_div -> starConvex_iff_div is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, Iff (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) a) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) b) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (HDiv.hDiv.{u1, u1, u1} π π π (instHDiv.{u1} π (DivInvMonoid.toHasDiv.{u1} π (DivisionRing.toDivInvMonoid.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} π π π (instHAdd.{u1} π (Distrib.toHasAdd.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) a b)) y)) s)))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, Iff (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) x s) (forall {{y : E}}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (forall {{a : π}} {{b : π}}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) a) -> (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) b) -> (LT.lt.{u2} π (Preorder.toLT.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 0 (Zero.toOfNat0.{u2} π (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))))) (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_2)))))) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))) (HDiv.hDiv.{u2, u2, u2} π π π (instHDiv.{u2} π (LinearOrderedField.toDiv.{u2} π _inst_1)) a (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) x) (HSMul.hSMul.{u2, u1, u1} π E E (instHSMul.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))) (HDiv.hDiv.{u2, u2, u2} π π π (instHDiv.{u2} π (LinearOrderedField.toDiv.{u2} π _inst_1)) b (HAdd.hAdd.{u2, u2, u2} π π π (instHAdd.{u2} π (Distrib.toAdd.{u2} π (NonUnitalNonAssocSemiring.toDistrib.{u2} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} π (NonAssocRing.toNonUnitalNonAssocRing.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))))) a b)) y)) s)))
+Case conversion may be inaccurate. Consider using '#align star_convex_iff_div starConvex_iff_divβ'. -/
/-- Alternative definition of star-convexity, using division. -/
theorem starConvex_iff_div :
StarConvex π x s β
@@ -432,6 +660,12 @@ theorem starConvex_iff_div :
exact h' zero_lt_oneβ©
#align star_convex_iff_div starConvex_iff_div
+/- warning: star_convex.mem_smul -> StarConvex.mem_smul is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {x : E} {s : Set.{u2} E}, (StarConvex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {t : π}, (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (NonAssocRing.toAddGroupWithOne.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))))) t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (SMul.smul.{u1, u2} π (Set.{u2} E) (Set.smulSet.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))) t s)))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {x : E} {s : Set.{u1} E}, (StarConvex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall {t : π}, (LE.le.{u2} π (Preorder.toLE.{u2} π (PartialOrder.toPreorder.{u2} π (StrictOrderedRing.toPartialOrder.{u2} π (LinearOrderedRing.toStrictOrderedRing.{u2} π (LinearOrderedCommRing.toLinearOrderedRing.{u2} π (LinearOrderedField.toLinearOrderedCommRing.{u2} π _inst_1)))))) (OfNat.ofNat.{u2} π 1 (One.toOfNat1.{u2} π (NonAssocRing.toOne.{u2} π (Ring.toNonAssocRing.{u2} π (DivisionRing.toRing.{u2} π (Field.toDivisionRing.{u2} π (LinearOrderedField.toField.{u2} π _inst_1))))))) t) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (HSMul.hSMul.{u2, u1, u1} π (Set.{u1} E) (Set.{u1} E) (instHSMul.{u2, u1} π (Set.{u1} E) (Set.smulSet.{u2, u1} π E (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (DivisionSemiring.toSemiring.{u2} π (Semifield.toDivisionSemiring.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))))) t s)))
+Case conversion may be inaccurate. Consider using '#align star_convex.mem_smul StarConvex.mem_smulβ'. -/
theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) : x β t β’ s :=
by
rw [mem_smul_set_iff_inv_smul_memβ (zero_lt_one.trans_le ht).ne']
@@ -451,6 +685,12 @@ Relates `star_convex` and `set.ord_connected`.
section OrdConnected
+/- warning: set.ord_connected.star_convex -> Set.OrdConnected.starConvex is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : OrderedAddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : OrderedSMul.{u1, u2} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3))] {x : E} {s : Set.{u2} E}, (Set.OrdConnected.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2)) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall (y : E), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Or (LE.le.{u2} E (Preorder.toLE.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) x y) (LE.le.{u2} E (Preorder.toLE.{u2} E (PartialOrder.toPreorder.{u2} E (OrderedAddCommMonoid.toPartialOrder.{u2} E _inst_2))) y x))) -> (StarConvex.{u1, u2} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) x s)
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : OrderedAddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : OrderedSMul.{u2, u1} π E _inst_1 _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) _inst_3))] {x : E} {s : Set.{u1} E}, (Set.OrdConnected.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2)) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (forall (y : E), (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (Or (LE.le.{u1} E (Preorder.toLE.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2))) x y) (LE.le.{u1} E (Preorder.toLE.{u1} E (PartialOrder.toPreorder.{u1} E (OrderedAddCommMonoid.toPartialOrder.{u1} E _inst_2))) y x))) -> (StarConvex.{u2, u1} π E _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (OrderedAddCommMonoid.toAddCommMonoid.{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 (OrderedAddCommMonoid.toAddCommMonoid.{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 (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) x s)
+Case conversion may be inaccurate. Consider using '#align set.ord_connected.star_convex Set.OrdConnected.starConvexβ'. -/
theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid E] [Module π E]
[OrderedSMul π E] {x : E} {s : Set E} (hs : s.OrdConnected) (hx : x β s)
(h : β y β s, x β€ y β¨ y β€ x) : StarConvex π x s :=
@@ -477,11 +717,23 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
+/- warning: star_convex_iff_ord_connected -> starConvex_iff_ordConnected is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.Mem.{u1, u1} π (Set.{u1} π) (Set.hasMem.{u1} π) x s) -> (Iff (StarConvex.{u1, u1} π π (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toAddCommGroup.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Mul.toSMul.{u1} π (Distrib.toHasMul.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) x s) (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) s))
+but is expected to have type
+ forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.mem.{u1, u1} π (Set.{u1} π) (Set.instMembershipSet.{u1} π) x s) -> (Iff (StarConvex.{u1, u1} π π (OrderedCommSemiring.toOrderedSemiring.{u1} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Algebra.toSMul.{u1, u1} π π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))) (DivisionSemiring.toSemiring.{u1} π (Semifield.toDivisionSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1)))) (Algebra.id.{u1} π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) x s) (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (StrictOrderedRing.toPartialOrder.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) s))
+Case conversion may be inaccurate. Consider using '#align star_convex_iff_ord_connected starConvex_iff_ordConnectedβ'. -/
theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Set π} (hx : x β s) :
StarConvex π x s β s.OrdConnected := by
simp_rw [ord_connected_iff_uIcc_subset_left hx, starConvex_iff_segment_subset, segment_eq_uIcc]
#align star_convex_iff_ord_connected starConvex_iff_ordConnected
+/- warning: star_convex.ord_connected -> StarConvex.ordConnected is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.Mem.{u1, u1} π (Set.{u1} π) (Set.hasMem.{u1} π) x s) -> (StarConvex.{u1, u1} π π (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toAddCommGroup.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Mul.toSMul.{u1} π (Distrib.toHasMul.{u1} π (Ring.toDistrib.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1)))))) x s) -> (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) s)
+but is expected to have type
+ forall {π : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} π] {x : π} {s : Set.{u1} π}, (Membership.mem.{u1, u1} π (Set.{u1} π) (Set.instMembershipSet.{u1} π) x s) -> (StarConvex.{u1, u1} π π (OrderedCommSemiring.toOrderedSemiring.{u1} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (DivisionRing.toRing.{u1} π (Field.toDivisionRing.{u1} π (LinearOrderedField.toField.{u1} π _inst_1))))))) (Algebra.toSMul.{u1, u1} π π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))) (DivisionSemiring.toSemiring.{u1} π (Semifield.toDivisionSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1)))) (Algebra.id.{u1} π (Semifield.toCommSemiring.{u1} π (LinearOrderedSemifield.toSemifield.{u1} π (LinearOrderedField.toLinearOrderedSemifield.{u1} π _inst_1))))) x s) -> (Set.OrdConnected.{u1} π (PartialOrder.toPreorder.{u1} π (StrictOrderedRing.toPartialOrder.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) s)
+Case conversion may be inaccurate. Consider using '#align star_convex.ord_connected StarConvex.ordConnectedβ'. -/
alias starConvex_iff_ordConnected β StarConvex.ordConnected _
#align star_convex.ord_connected StarConvex.ordConnected
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -421,9 +421,9 @@ theorem starConvex_iff_div :
β¨fun h y hy a b ha hb hab => by
apply h hy
Β· have ha' := mul_le_mul_of_nonneg_left ha (inv_pos.2 hab).le
- rwa [mul_zero, β div_eq_inv_mul] at ha'
+ rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at ha'
Β· have hb' := mul_le_mul_of_nonneg_left hb (inv_pos.2 hab).le
- rwa [mul_zero, β div_eq_inv_mul] at hb'
+ rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
Β· rw [β add_div]
exact div_self hab.ne', fun h y hy a b ha hb hab =>
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -450,16 +450,16 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
intro y hy a b ha hb hab
obtain hxy | hyx := h _ hy
Β· refine' hs.out hx hy (mem_Icc.2 β¨_, _β©)
- calc
- x = a β’ x + b β’ x := (Convex.combo_self hab _).symm
- _ β€ a β’ x + b β’ y := by gcongr
+ Β· calc
+ x = a β’ x + b β’ x := (Convex.combo_self hab _).symm
+ _ β€ a β’ x + b β’ y := by gcongr
calc
a β’ x + b β’ y β€ a β’ y + b β’ y := by gcongr
_ = y := Convex.combo_self hab _
Β· refine' hs.out hy hx (mem_Icc.2 β¨_, _β©)
- calc
- y = a β’ y + b β’ y := (Convex.combo_self hab _).symm
- _ β€ a β’ x + b β’ y := by gcongr
+ Β· calc
+ y = a β’ y + b β’ y := (Convex.combo_self hab _).symm
+ _ β€ a β’ x + b β’ y := by gcongr
calc
a β’ x + b β’ y β€ a β’ x + b β’ x := by gcongr
_ = x := Convex.combo_self hab _
ball
and bex
from lemma names (#10816)
ball
for "bounded forall" and bex
for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem
and exists_mem
in the few Set
lemma names that mention them.
Also deprecate ball_image_of_ball
, mem_image_elim
, mem_image_elim_on
since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image
semi-implicit), have obscure names and are completely unused.
@@ -115,7 +115,7 @@ theorem starConvex_sInter {S : Set (Set E)} (h : β s β S, StarConvex π x
theorem starConvex_iInter {ΞΉ : Sort*} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) :=
- sInter_range s βΈ starConvex_sInter <| forall_range_iff.2 h
+ sInter_range s βΈ starConvex_sInter <| forall_mem_range.2 h
#align star_convex_Inter starConvex_iInter
theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
@@ -3,6 +3,7 @@ Copyright (c) 2021 YaΓ«l Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies
-/
+import Mathlib.Algebra.Order.Group.Instances
import Mathlib.Analysis.Convex.Segment
import Mathlib.Tactic.GCongr
Set.image2
etc (#9275)
Set.image2
to use β a β s, β b β t, f a b = c
instead of β a b, a β s β§ b β t β§ f a b = c
.Set.seq
as Set.image2
. The new definition is equal to the old one but rw [Set.seq]
gives a different result.Filter.mapβ
to use β u β f, β v β g, image2 m u v β s
instead of β u v, u β f β§ v β g β§ ...
Set.mem_image2
, Finset.mem_imageβ
, Set.mem_mul
, Finset.mem_div
etcThe two reasons to make the change are:
β a β s, β b β t, _
is a simp
-normal form, and@@ -94,7 +94,7 @@ theorem starConvex_iff_pointwise_add_subset :
refine'
β¨_, fun h y hy a b ha hb hab =>
h ha hb hab (add_mem_add (smul_mem_smul_set <| mem_singleton _) β¨_, hy, rflβ©)β©
- rintro hA a b ha hb hab w β¨au, bv, β¨u, rfl : u = x, rflβ©, β¨v, hv, rflβ©, rflβ©
+ rintro hA a b ha hb hab w β¨au, β¨u, rfl : u = x, rflβ©, bv, β¨v, hv, rflβ©, rflβ©
exact hA hv ha hb hab
#align star_convex_iff_pointwise_add_subset starConvex_iff_pointwise_add_subset
β’
lemmas (#9179)
Remove the duplicates introduced in #8869 by sorting the lemmas in Algebra.Order.SMul
into three files:
Algebra.Order.Module.Defs
for the order isomorphism induced by scalar multiplication by a positivity elementAlgebra.Order.Module.Pointwise
for the order properties of scalar multiplication of sets. This file is new. I credit myself for https://github.com/leanprover-community/mathlib/pull/9078Algebra.Order.Module.OrderedSMul
: The material about OrderedSMul
per se. Inherits the copyright header from Algebra.Order.SMul
. This file should eventually be deleted.I move each #align
to the correct file. On top of that, I delete unused redundant OrderedSMul
instances (they were useful in Lean 3, but not anymore) and eq_of_smul_eq_smul_of_pos_of_le
/eq_of_smul_eq_smul_of_neg_of_le
since those lemmas are weird and unused.
@@ -385,7 +385,7 @@ lemma starConvex_compl_Iic (h : x < y) : StarConvex π y (Iic x)αΆ := by
refine (starConvex_iff_forall_pos <| by simp [h.not_le]).mpr fun z hz a b ha hb hab β¦ ?_
rw [mem_compl_iff, mem_Iic] at hz β’
contrapose! hz
- refine (lt_of_smul_lt_smul_of_nonneg ?_ hb.le).le
+ refine (lt_of_smul_lt_smul_of_nonneg_left ?_ hb.le).le
calc
b β’ z β€ (a + b) β’ x - a β’ y := by rwa [le_sub_iff_add_le', hab, one_smul]
_ < b β’ x := by
In preparation of future PRs dealing with estimates of the complex logarithm and its Taylor series, this introduces Complex.slitPlane
for the set of complex numbers not on the closed negative real axis (in Analysis.SpecialFunctions.Complex.Arg
), adds a bunch of API lemmas, and replaces hypotheses of the form 0 < x.re β¨ x.im β 0
by x β slitPlane
in several other files.
(We do not introduce a new file for that to avoid circular imports with Analysis.SpecialFunctions.Complex.Arg
.)
Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
@@ -376,6 +376,28 @@ theorem StarConvex.sub (hs : StarConvex π x s) (ht : StarConvex π y t) :
end AddCommGroup
+section OrderedAddCommGroup
+
+variable [OrderedAddCommGroup E] [Module π E] [OrderedSMul π E] {x y : E}
+
+/-- If `x < y`, then `(Set.Iic x)αΆ` is star convex at `y`. -/
+lemma starConvex_compl_Iic (h : x < y) : StarConvex π y (Iic x)αΆ := by
+ refine (starConvex_iff_forall_pos <| by simp [h.not_le]).mpr fun z hz a b ha hb hab β¦ ?_
+ rw [mem_compl_iff, mem_Iic] at hz β’
+ contrapose! hz
+ refine (lt_of_smul_lt_smul_of_nonneg ?_ hb.le).le
+ calc
+ b β’ z β€ (a + b) β’ x - a β’ y := by rwa [le_sub_iff_add_le', hab, one_smul]
+ _ < b β’ x := by
+ rw [add_smul, sub_lt_iff_lt_add']
+ gcongr
+
+/-- If `x < y`, then `(Set.Ici y)αΆ` is star convex at `x`. -/
+lemma starConvex_compl_Ici (h : x < y) : StarConvex π x (Ici y)αΆ :=
+ starConvex_compl_Iic (E := Eα΅α΅) h
+
+end OrderedAddCommGroup
+
end OrderedRing
section LinearOrderedField
@@ -417,9 +439,10 @@ end LinearOrderedField
Relates `starConvex` and `Set.ordConnected`.
-/
-
section OrdConnected
+/-- If `s` is an order-connected set in an ordered module over an ordered semiring
+and all elements of `s` are comparable with `x β s`, then `s` is `StarConvex` at `x`. -/
theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid E] [Module π E]
[OrderedSMul π E] {x : E} {s : Set E} (hs : s.OrdConnected) (hx : x β s)
(h : β y β s, x β€ y β¨ y β€ x) : StarConvex π x s := by
@@ -201,10 +201,9 @@ theorem starConvex_singleton (x : E) : StarConvex π x {x} := by
#align star_convex_singleton starConvex_singleton
theorem StarConvex.linear_image (hs : StarConvex π x s) (f : E ββ[π] F) :
- StarConvex π (f x) (s.image f) := by
- intro y hy a b ha hb hab
- obtain β¨y', hy', rflβ© := hy
- exact β¨a β’ x + b β’ y', hs hy' ha hb hab, by rw [f.map_add, f.map_smul, f.map_smul]β©
+ StarConvex π (f x) (f '' s) := by
+ rintro _ β¨y, hy, rflβ© a b ha hb hab
+ exact β¨a β’ x + b β’ y, hs hy ha hb hab, by rw [f.map_add, f.map_smul, f.map_smul]β©
#align star_convex.linear_image StarConvex.linear_image
theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf : IsLinearMap π f) :
@@ -213,7 +212,7 @@ theorem StarConvex.is_linear_image (hs : StarConvex π x s) {f : E β F} (hf
#align star_convex.is_linear_image StarConvex.is_linear_image
theorem StarConvex.linear_preimage {s : Set F} (f : E ββ[π] F) (hs : StarConvex π (f x) s) :
- StarConvex π x (s.preimage f) := by
+ StarConvex π x (f β»ΒΉ' s) := by
intro y hy a b ha hb hab
rw [mem_preimage, f.map_add, f.map_smul, f.map_smul]
exact hs hy ha hb hab
@@ -447,7 +447,7 @@ theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Se
simp_rw [ordConnected_iff_uIcc_subset_left hx, starConvex_iff_segment_subset, segment_eq_uIcc]
#align star_convex_iff_ord_connected starConvex_iff_ordConnected
-alias starConvex_iff_ordConnected β StarConvex.ordConnected _
+alias β¨StarConvex.ordConnected, _β© := starConvex_iff_ordConnected
#align star_convex.ord_connected StarConvex.ordConnected
end OrdConnected
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -49,7 +49,7 @@ open Set
open Convex Pointwise
-variable {π E F : Type _}
+variable {π E F : Type*}
section OrderedSemiring
@@ -112,7 +112,7 @@ theorem starConvex_sInter {S : Set (Set E)} (h : β s β S, StarConvex π x
StarConvex π x (ββ S) := fun _ hy _ _ ha hb hab s hs => h s hs (hy s hs) ha hb hab
#align star_convex_sInter starConvex_sInter
-theorem starConvex_iInter {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
+theorem starConvex_iInter {ΞΉ : Sort*} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) :=
sInter_range s βΈ starConvex_sInter <| forall_range_iff.2 h
#align star_convex_Inter starConvex_iInter
@@ -124,7 +124,7 @@ theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
Β· exact Or.inr (ht hy ha hb hab)
#align star_convex.union StarConvex.union
-theorem starConvex_iUnion {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
+theorem starConvex_iUnion {ΞΉ : Sort*} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) := by
rintro y hy a b ha hb hab
rw [mem_iUnion] at hy β’
@@ -143,7 +143,7 @@ theorem StarConvex.prod {y : F} {s : Set E} {t : Set F} (hs : StarConvex π x
β¨hs hy.1 ha hb hab, ht hy.2 ha hb habβ©
#align star_convex.prod StarConvex.prod
-theorem starConvex_pi {ΞΉ : Type _} {E : ΞΉ β Type _} [β i, AddCommMonoid (E i)] [β i, SMul π (E i)]
+theorem starConvex_pi {ΞΉ : Type*} {E : ΞΉ β Type*} [β i, AddCommMonoid (E i)] [β i, SMul π (E i)]
{x : β i, E i} {s : Set ΞΉ} {t : β i, Set (E i)} (ht : β β¦iβ¦, i β s β StarConvex π (x i) (t i)) :
StarConvex π x (s.pi t) := fun _ hy _ _ ha hb hab i hi => ht hi (hy i hi) ha hb hab
#align star_convex_pi starConvex_pi
@@ -2,15 +2,12 @@
Copyright (c) 2021 YaΓ«l Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies
-
-! This file was ported from Lean 3 source module analysis.convex.star
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Segment
import Mathlib.Tactic.GCongr
+#align_import analysis.convex.star from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+
/-!
# Star-convex sets
at
and goals (#5387)
Changes are of the form
some_tactic at hβ’
-> some_tactic at h β’
some_tactic at h
-> some_tactic at h
@@ -130,7 +130,7 @@ theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
theorem starConvex_iUnion {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) := by
rintro y hy a b ha hb hab
- rw [mem_iUnion] at hyβ’
+ rw [mem_iUnion] at hy β’
obtain β¨i, hyβ© := hy
exact β¨i, hs i hy ha hb habβ©
#align star_convex_Union starConvex_iUnion
@@ -9,6 +9,7 @@ Authors: YaΓ«l Dillies
! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Segment
+import Mathlib.Tactic.GCongr
/-!
# Star-convex sets
@@ -431,16 +432,16 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
Β· refine' hs.out hx hy (mem_Icc.2 β¨_, _β©)
calc
x = a β’ x + b β’ x := (Convex.combo_self hab _).symm
- _ β€ a β’ x + b β’ y := add_le_add_left (smul_le_smul_of_nonneg hxy hb) _
+ _ β€ a β’ x + b β’ y := by gcongr
calc
- a β’ x + b β’ y β€ a β’ y + b β’ y := add_le_add_right (smul_le_smul_of_nonneg hxy ha) _
+ a β’ x + b β’ y β€ a β’ y + b β’ y := by gcongr
_ = y := Convex.combo_self hab _
Β· refine' hs.out hy hx (mem_Icc.2 β¨_, _β©)
calc
y = a β’ y + b β’ y := (Convex.combo_self hab _).symm
- _ β€ a β’ x + b β’ y := add_le_add_right (smul_le_smul_of_nonneg hyx ha) _
+ _ β€ a β’ x + b β’ y := by gcongr
calc
- a β’ x + b β’ y β€ a β’ x + b β’ x := add_le_add_left (smul_le_smul_of_nonneg hyx hb) _
+ a β’ x + b β’ y β€ a β’ x + b β’ x := by gcongr
_ = x := Convex.combo_self hab _
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
@@ -394,10 +394,8 @@ theorem starConvex_iff_div : StarConvex π x s β β β¦yβ¦, y β s β
β β¦a b : πβ¦, 0 β€ a β 0 β€ b β 0 < a + b β (a / (a + b)) β’ x + (b / (a + b)) β’ y β s :=
β¨fun h y hy a b ha hb hab => by
apply h hy
- Β· have ha' := mul_le_mul_of_nonneg_left ha (inv_pos.2 hab).le
- rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at ha'
- Β· have hb' := mul_le_mul_of_nonneg_left hb (inv_pos.2 hab).le
- rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
+ Β· positivity
+ Β· positivity
Β· rw [β add_div]
exact div_self hab.ne',
fun h y hy a b ha hb hab => by
@@ -409,7 +407,7 @@ theorem starConvex_iff_div : StarConvex π x s β β β¦yβ¦, y β s β
theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) :
x β t β’ s := by
rw [mem_smul_set_iff_inv_smul_memβ (zero_lt_one.trans_le ht).ne']
- exact hs.smul_mem hx (inv_nonneg.2 <| zero_le_one.trans ht) (inv_le_one ht)
+ exact hs.smul_mem hx (by positivity) (inv_le_one ht)
#align star_convex.mem_smul StarConvex.mem_smul
end AddCommGroup
sSup
/iSup
(#3938)
As discussed on Zulip
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>
@@ -110,14 +110,14 @@ theorem StarConvex.inter (hs : StarConvex π x s) (ht : StarConvex π x t) :
fun _ hy _ _ ha hb hab => β¨hs hy.left ha hb hab, ht hy.right ha hb habβ©
#align star_convex.inter StarConvex.inter
-theorem starConvex_interβ {S : Set (Set E)} (h : β s β S, StarConvex π x s) :
+theorem starConvex_sInter {S : Set (Set E)} (h : β s β S, StarConvex π x s) :
StarConvex π x (ββ S) := fun _ hy _ _ ha hb hab s hs => h s hs (hy s hs) ha hb hab
-#align star_convex_sInter starConvex_interβ
+#align star_convex_sInter starConvex_sInter
-theorem starConvex_interα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
+theorem starConvex_iInter {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) :=
- interβ_range s βΈ starConvex_interβ <| forall_range_iff.2 h
-#align star_convex_Inter starConvex_interα΅’
+ sInter_range s βΈ starConvex_sInter <| forall_range_iff.2 h
+#align star_convex_Inter starConvex_iInter
theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
StarConvex π x (s βͺ t) := by
@@ -126,19 +126,19 @@ theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
Β· exact Or.inr (ht hy ha hb hab)
#align star_convex.union StarConvex.union
-theorem starConvex_unionα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
+theorem starConvex_iUnion {ΞΉ : Sort _} {s : ΞΉ β Set E} (hs : β i, StarConvex π x (s i)) :
StarConvex π x (β i, s i) := by
rintro y hy a b ha hb hab
- rw [mem_unionα΅’] at hyβ’
+ rw [mem_iUnion] at hyβ’
obtain β¨i, hyβ© := hy
exact β¨i, hs i hy ha hb habβ©
-#align star_convex_Union starConvex_unionα΅’
+#align star_convex_Union starConvex_iUnion
-theorem starConvex_unionβ {S : Set (Set E)} (hS : β s β S, StarConvex π x s) :
+theorem starConvex_sUnion {S : Set (Set E)} (hS : β s β S, StarConvex π x s) :
StarConvex π x (ββ S) := by
- rw [unionβ_eq_unionα΅’]
- exact starConvex_unionα΅’ fun s => hS _ s.2
-#align star_convex_sUnion starConvex_unionβ
+ rw [sUnion_eq_iUnion]
+ exact starConvex_iUnion fun s => hS _ s.2
+#align star_convex_sUnion starConvex_sUnion
theorem StarConvex.prod {y : F} {s : Set E} {t : Set F} (hs : StarConvex π x s)
(ht : StarConvex π y t) : StarConvex π (x, y) (s ΓΛ’ t) := fun _ hy _ _ ha hb hab =>
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -119,8 +119,8 @@ theorem starConvex_interα΅’ {ΞΉ : Sort _} {s : ΞΉ β Set E} (h : β i, StarCon
interβ_range s βΈ starConvex_interβ <| forall_range_iff.2 h
#align star_convex_Inter starConvex_interα΅’
-theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) : StarConvex π x (s βͺ t) :=
- by
+theorem StarConvex.union (hs : StarConvex π x s) (ht : StarConvex π x t) :
+ StarConvex π x (s βͺ t) := by
rintro y (hy | hy) a b ha hb hab
Β· exact Or.inl (hs hy ha hb hab)
Β· exact Or.inr (ht hy ha hb hab)
@@ -162,9 +162,8 @@ theorem StarConvex.mem (hs : StarConvex π x s) (h : s.Nonempty) : x β s :=
rw [one_smul, zero_smul, add_zero]
#align star_convex.mem StarConvex.mem
-theorem starConvex_iff_forall_pos (hx : x β s) :
- StarConvex π x s β β β¦yβ¦, y β s β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s :=
- by
+theorem starConvex_iff_forall_pos (hx : x β s) : StarConvex π x s β
+ β β¦yβ¦, y β s β β β¦a b : πβ¦, 0 < a β 0 < b β a + b = 1 β a β’ x + b β’ y β s := by
refine' β¨fun h y hy a b ha hb hab => h hy ha.le hb.le hab, _β©
intro h y hy a b ha hb hab
obtain rfl | ha := ha.eq_or_lt
@@ -391,11 +390,8 @@ section AddCommGroup
variable [AddCommGroup E] [Module π E] {x : E} {s : Set E}
/-- Alternative definition of star-convexity, using division. -/
-theorem starConvex_iff_div :
- StarConvex π x s β
- β β¦yβ¦,
- y β s β
- β β¦a b : πβ¦, 0 β€ a β 0 β€ b β 0 < a + b β (a / (a + b)) β’ x + (b / (a + b)) β’ y β s :=
+theorem starConvex_iff_div : StarConvex π x s β β β¦yβ¦, y β s β
+ β β¦a b : πβ¦, 0 β€ a β 0 β€ b β 0 < a + b β (a / (a + b)) β’ x + (b / (a + b)) β’ y β s :=
β¨fun h y hy a b ha hb hab => by
apply h hy
Β· have ha' := mul_le_mul_of_nonneg_left ha (inv_pos.2 hab).le
@@ -403,15 +399,15 @@ theorem starConvex_iff_div :
Β· have hb' := mul_le_mul_of_nonneg_left hb (inv_pos.2 hab).le
rwa [MulZeroClass.mul_zero, β div_eq_inv_mul] at hb'
Β· rw [β add_div]
- exact div_self hab.ne', fun h y hy a b ha hb hab =>
- by
+ exact div_self hab.ne',
+ fun h y hy a b ha hb hab => by
have h' := h hy ha hb
rw [hab, div_one, div_one] at h'
exact h' zero_lt_oneβ©
#align star_convex_iff_div starConvex_iff_div
-theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) : x β t β’ s :=
- by
+theorem StarConvex.mem_smul (hs : StarConvex π 0 s) (hx : x β s) {t : π} (ht : 1 β€ t) :
+ x β t β’ s := by
rw [mem_smul_set_iff_inv_smul_memβ (zero_lt_one.trans_le ht).ne']
exact hs.smul_mem hx (inv_nonneg.2 <| zero_le_one.trans ht) (inv_le_one ht)
#align star_convex.mem_smul StarConvex.mem_smul
This PR fixes two things:
align
statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align
). This is often seen in the mathport output after ending calc
blocks.#align
statements. (This was needed for a script I wrote for #3630.)@@ -448,7 +448,6 @@ theorem Set.OrdConnected.starConvex [OrderedSemiring π] [OrderedAddCommMonoid
calc
a β’ x + b β’ y β€ a β’ x + b β’ x := add_le_add_left (smul_le_smul_of_nonneg hyx hb) _
_ = x := Convex.combo_self hab _
-
#align set.ord_connected.star_convex Set.OrdConnected.starConvex
theorem starConvex_iff_ordConnected [LinearOrderedField π] {x : π} {s : Set π} (hx : x β s) :
The unported dependencies are