/-
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.strict
! leanprover-community/mathlib commit 84dc0bd6619acaea625086d6f53cb35cdd554219
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Analysis.Convex.Basic
import Mathbin.Topology.Algebra.Order.Group

/-!
# Strictly convex sets

This file defines strictly convex sets.

A set is strictly convex if the open segment between any two distinct points lies in its interior.
-/

open Set

open Convex Pointwise

variable {𝕜 𝕝 E F β : Type _}

open Function Set

open Convex

section OrderedSemiring

variable [OrderedSemiring 𝕜] [TopologicalSpace E] [TopologicalSpace F]

section AddCommMonoid

variable [AddCommMonoid E] [AddCommMonoid F]

section SMul

variable (𝕜) [SMul 𝕜 E] [SMul 𝕜 F] (s : Set E)

#print StrictConvex /-
/-- A set is strictly convex if the open segment between any two distinct points lies is in its
interior. This basically means "convex and not flat on the boundary". -/
def StrictConvex : Prop :=
  s.Pairwise fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → a • x + b • y ∈ interior s
#align strict_convex StrictConvex
-/

variable {𝕜 s} {x y : E} {a b : 𝕜}

/- warning: strict_convex_iff_open_segment_subset -> strictConvex_iff_openSegment_subset is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E] {s : Set.{u2} E}, Iff (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_4 _inst_6 x y) (interior.{u2} E _inst_2 s)))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : SMul.{u2, u1} 𝕜 E] {s : Set.{u1} E}, Iff (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) (Set.Pairwise.{u1} E s (fun (x : E) (y : E) => HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (openSegment.{u2, u1} 𝕜 E _inst_1 _inst_4 _inst_6 x y) (interior.{u1} E _inst_2 s)))
Case conversion may be inaccurate. Consider using '#align strict_convex_iff_open_segment_subset strictConvex_iff_openSegment_subsetₓ'. -/
theorem strictConvex_iff_openSegment_subset :
    StrictConvex 𝕜 s ↔ s.Pairwise fun x y => openSegment 𝕜 x y ⊆ interior s :=
  forall₅_congr fun x hx y hy hxy => (openSegment_subset_iff 𝕜).symm
#align strict_convex_iff_open_segment_subset strictConvex_iff_openSegment_subset

/- warning: strict_convex.open_segment_subset -> StrictConvex.openSegment_subset is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E] {s : Set.{u2} E} {x : E} {y : E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_4 _inst_6 x y) (interior.{u2} E _inst_2 s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : SMul.{u2, u1} 𝕜 E] {s : Set.{u1} E} {x : E} {y : E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (Ne.{succ u1} E x y) -> (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) (openSegment.{u2, u1} 𝕜 E _inst_1 _inst_4 _inst_6 x y) (interior.{u1} E _inst_2 s))
Case conversion may be inaccurate. Consider using '#align strict_convex.open_segment_subset StrictConvex.openSegment_subsetₓ'. -/
theorem StrictConvex.openSegment_subset (hs : StrictConvex 𝕜 s) (hx : x ∈ s) (hy : y ∈ s)
    (h : x ≠ y) : openSegment 𝕜 x y ⊆ interior s :=
  strictConvex_iff_openSegment_subset.1 hs hx hy h
#align strict_convex.open_segment_subset StrictConvex.openSegment_subset

/- warning: strict_convex_empty -> strictConvex_empty is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E], StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 (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 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : SMul.{u2, u1} 𝕜 E], StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.instEmptyCollectionSet.{u1} E))
Case conversion may be inaccurate. Consider using '#align strict_convex_empty strictConvex_emptyₓ'. -/
theorem strictConvex_empty : StrictConvex 𝕜 (∅ : Set E) :=
  pairwise_empty _
#align strict_convex_empty strictConvex_empty

/- warning: strict_convex_univ -> strictConvex_univ is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E], StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 (Set.univ.{u2} E)
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : SMul.{u2, u1} 𝕜 E], StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 (Set.univ.{u1} E)
Case conversion may be inaccurate. Consider using '#align strict_convex_univ strictConvex_univₓ'. -/
theorem strictConvex_univ : StrictConvex 𝕜 (univ : Set E) :=
  by
  intro x hx y hy hxy a b ha hb hab
  rw [interior_univ]
  exact mem_univ _
#align strict_convex_univ strictConvex_univ

/- warning: strict_convex.eq -> StrictConvex.eq is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E] {s : Set.{u2} E} {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (Not (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_4)))) (SMul.smul.{u1, u2} 𝕜 E _inst_6 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_6 b y)) (interior.{u2} E _inst_2 s))) -> (Eq.{succ u2} E x y)
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : SMul.{u2, u1} 𝕜 E] {s : Set.{u1} E} {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (Not (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 (AddCommMonoid.toAddMonoid.{u1} E _inst_4)))) (HSMul.hSMul.{u2, u1, u1} 𝕜 E E (instHSMul.{u2, u1} 𝕜 E _inst_6) a x) (HSMul.hSMul.{u2, u1, u1} 𝕜 E E (instHSMul.{u2, u1} 𝕜 E _inst_6) b y)) (interior.{u1} E _inst_2 s))) -> (Eq.{succ u1} E x y)
Case conversion may be inaccurate. Consider using '#align strict_convex.eq StrictConvex.eqₓ'. -/
protected theorem StrictConvex.eq (hs : StrictConvex 𝕜 s) (hx : x ∈ s) (hy : y ∈ s) (ha : 0 < a)
    (hb : 0 < b) (hab : a + b = 1) (h : a • x + b • y ∉ interior s) : x = y :=
  hs.Eq hx hy fun H => h <| H ha hb hab
#align strict_convex.eq StrictConvex.eq

/- warning: strict_convex.inter -> StrictConvex.inter is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E] {s : Set.{u2} E} {t : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 t) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 (Inter.inter.{u2} (Set.{u2} E) (Set.hasInter.{u2} E) s t))
but is expected to have type
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : SMul.{u1, u2} 𝕜 E] {s : Set.{u2} E} {t : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 s) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 t) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 _inst_6 (Inter.inter.{u2} (Set.{u2} E) (Set.instInterSet.{u2} E) s t))
Case conversion may be inaccurate. Consider using '#align strict_convex.inter StrictConvex.interₓ'. -/
protected theorem StrictConvex.inter {t : Set E} (hs : StrictConvex 𝕜 s) (ht : StrictConvex 𝕜 t) :
    StrictConvex 𝕜 (s ∩ t) := by
  intro x hx y hy hxy a b ha hb hab
  rw [interior_inter]
  exact ⟨hs hx.1 hy.1 hxy ha hb hab, ht hx.2 hy.2 hxy ha hb hab⟩
#align strict_convex.inter StrictConvex.inter

#print Directed.strictConvex_unionᵢ /-
theorem Directed.strictConvex_unionᵢ {ι : Sort _} {s : ι → Set E} (hdir : Directed (· ⊆ ·) s)
    (hs : ∀ ⦃i : ι⦄, StrictConvex 𝕜 (s i)) : StrictConvex 𝕜 (⋃ i, s i) :=
  by
  rintro x hx y hy hxy a b ha hb hab
  rw [mem_Union] at hx hy
  obtain ⟨i, hx⟩ := hx
  obtain ⟨j, hy⟩ := hy
  obtain ⟨k, hik, hjk⟩ := hdir i j
  exact interior_mono (subset_Union s k) (hs (hik hx) (hjk hy) hxy ha hb hab)
#align directed.strict_convex_Union Directed.strictConvex_unionᵢ
-/

#print DirectedOn.strictConvex_unionₛ /-
theorem DirectedOn.strictConvex_unionₛ {S : Set (Set E)} (hdir : DirectedOn (· ⊆ ·) S)
    (hS : ∀ s ∈ S, StrictConvex 𝕜 s) : StrictConvex 𝕜 (⋃₀ S) :=
  by
  rw [sUnion_eq_Union]
  exact (directedOn_iff_directed.1 hdir).strictConvex_unionᵢ fun s => hS _ s.2
#align directed_on.strict_convex_sUnion DirectedOn.strictConvex_unionₛ
-/

end SMul

section Module

variable [Module 𝕜 E] [Module 𝕜 F] {s : Set E}

/- warning: strict_convex.convex -> StrictConvex.convex is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) s) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4 _inst_6)))) s) -> (Convex.{u2, u1} 𝕜 E _inst_1 _inst_4 (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4 _inst_6)))) s)
Case conversion may be inaccurate. Consider using '#align strict_convex.convex StrictConvex.convexₓ'. -/
protected theorem StrictConvex.convex (hs : StrictConvex 𝕜 s) : Convex 𝕜 s :=
  convex_iff_pairwise_pos.2 fun x hx y hy hxy a b ha hb hab =>
    interior_subset <| hs hx hy hxy ha hb hab
#align strict_convex.convex StrictConvex.convex

#print Convex.strictConvex_of_open /-
/-- An open convex set is strictly convex. -/
protected theorem Convex.strictConvex_of_open (h : IsOpen s) (hs : Convex 𝕜 s) : StrictConvex 𝕜 s :=
  fun x hx y hy _ a b ha hb hab => h.interior_eq.symm ▸ hs hx hy ha.le hb.le hab
#align convex.strict_convex_of_open Convex.strictConvex_of_open
-/

#print IsOpen.strictConvex_iff /-
theorem IsOpen.strictConvex_iff (h : IsOpen s) : StrictConvex 𝕜 s ↔ Convex 𝕜 s :=
  ⟨StrictConvex.convex, Convex.strictConvex_of_open h⟩
#align is_open.strict_convex_iff IsOpen.strictConvex_iff
-/

/- warning: strict_convex_singleton -> strictConvex_singleton is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommMonoid.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] (c : E), StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) c)
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommMonoid.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4] (c : E), StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4 _inst_6)))) (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) c)
Case conversion may be inaccurate. Consider using '#align strict_convex_singleton strictConvex_singletonₓ'. -/
theorem strictConvex_singleton (c : E) : StrictConvex 𝕜 ({c} : Set E) :=
  pairwise_singleton _ _
#align strict_convex_singleton strictConvex_singleton

#print Set.Subsingleton.strictConvex /-
theorem Set.Subsingleton.strictConvex (hs : s.Subsingleton) : StrictConvex 𝕜 s :=
  hs.Pairwise _
#align set.subsingleton.strict_convex Set.Subsingleton.strictConvex
-/

/- warning: strict_convex.linear_image -> StrictConvex.linear_image is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {𝕝 : Type.{u2}} {E : Type.{u3}} {F : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u3} E] [_inst_3 : TopologicalSpace.{u4} F] [_inst_4 : AddCommMonoid.{u3} E] [_inst_5 : AddCommMonoid.{u4} F] [_inst_6 : Module.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u1, u4} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5] {s : Set.{u3} E} [_inst_8 : Semiring.{u2} 𝕝] [_inst_9 : Module.{u2, u3} 𝕝 E _inst_8 _inst_4] [_inst_10 : Module.{u2, u4} 𝕝 F _inst_8 _inst_5] [_inst_11 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} E F _inst_4 _inst_5 𝕜 𝕝 _inst_8 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) _inst_9 (SMulZeroClass.toHasSmul.{u1, u4} 𝕜 F (AddZeroClass.toHasZero.{u4} F (AddMonoid.toAddZeroClass.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u4} F (AddMonoid.toAddZeroClass.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u4} F (AddMonoid.toAddZeroClass.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_5))) (Module.toMulActionWithZero.{u1, u4} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) _inst_10], (StrictConvex.{u1, u3} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) s) -> (forall (f : LinearMap.{u2, u2, u3, u4} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10), (IsOpenMap.{u3, u4} E F _inst_2 _inst_3 (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10) (fun (_x : LinearMap.{u2, u2, u3, u4} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10) => E -> F) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} 𝕝 𝕝 E F _inst_8 _inst_8 _inst_4 _inst_5 _inst_9 _inst_10 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8))) f)) -> (StrictConvex.{u1, u4} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u4} 𝕜 F (AddZeroClass.toHasZero.{u4} F (AddMonoid.toAddZeroClass.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u4} F (AddMonoid.toAddZeroClass.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u4} F (AddMonoid.toAddZeroClass.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_5))) (Module.toMulActionWithZero.{u1, u4} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) (Set.image.{u3, u4} E F (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10) (fun (_x : LinearMap.{u2, u2, u3, u4} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10) => E -> F) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} 𝕝 𝕝 E F _inst_8 _inst_8 _inst_4 _inst_5 _inst_9 _inst_10 (RingHom.id.{u2} 𝕝 (Semiring.toNonAssocSemiring.{u2} 𝕝 _inst_8))) f) s)))
but is expected to have type
  forall {𝕜 : Type.{u1}} {𝕝 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u3} E] [_inst_3 : TopologicalSpace.{u2} F] [_inst_4 : AddCommMonoid.{u3} E] [_inst_5 : AddCommMonoid.{u2} F] [_inst_6 : Module.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u1, u2} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5] {s : Set.{u3} E} [_inst_8 : Semiring.{u4} 𝕝] [_inst_9 : Module.{u4, u3} 𝕝 E _inst_8 _inst_4] [_inst_10 : Module.{u4, u2} 𝕝 F _inst_8 _inst_5] [_inst_11 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} E F _inst_4 _inst_5 𝕜 𝕝 _inst_8 (SMulZeroClass.toSMul.{u1, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} 𝕜 E (MonoidWithZero.toZero.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4)) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) _inst_9 (SMulZeroClass.toSMul.{u1, u2} 𝕜 F (AddMonoid.toZero.{u2} F (AddCommMonoid.toAddMonoid.{u2} F _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 F (MonoidWithZero.toZero.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} F (AddCommMonoid.toAddMonoid.{u2} F _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} F (AddCommMonoid.toAddMonoid.{u2} F _inst_5)) (Module.toMulActionWithZero.{u1, u2} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) _inst_10], (StrictConvex.{u1, u3} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toSMul.{u1, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} 𝕜 E (MonoidWithZero.toZero.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_4)) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) s) -> (forall (f : LinearMap.{u4, u4, u3, u2} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u4} 𝕝 (Semiring.toNonAssocSemiring.{u4} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10), (IsOpenMap.{u3, u2} E F _inst_2 _inst_3 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u4} 𝕝 (Semiring.toNonAssocSemiring.{u4} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} 𝕝 𝕝 E F _inst_8 _inst_8 _inst_4 _inst_5 _inst_9 _inst_10 (RingHom.id.{u4} 𝕝 (Semiring.toNonAssocSemiring.{u4} 𝕝 _inst_8))) f)) -> (StrictConvex.{u1, u2} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u1, u2} 𝕜 F (AddMonoid.toZero.{u2} F (AddCommMonoid.toAddMonoid.{u2} F _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 F (MonoidWithZero.toZero.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} F (AddCommMonoid.toAddMonoid.{u2} F _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} F (AddCommMonoid.toAddMonoid.{u2} F _inst_5)) (Module.toMulActionWithZero.{u1, u2} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) (Set.image.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} 𝕝 𝕝 _inst_8 _inst_8 (RingHom.id.{u4} 𝕝 (Semiring.toNonAssocSemiring.{u4} 𝕝 _inst_8)) E F _inst_4 _inst_5 _inst_9 _inst_10) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} 𝕝 𝕝 E F _inst_8 _inst_8 _inst_4 _inst_5 _inst_9 _inst_10 (RingHom.id.{u4} 𝕝 (Semiring.toNonAssocSemiring.{u4} 𝕝 _inst_8))) f) s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.linear_image StrictConvex.linear_imageₓ'. -/
theorem StrictConvex.linear_image [Semiring 𝕝] [Module 𝕝 E] [Module 𝕝 F]
    [LinearMap.CompatibleSMul E F 𝕜 𝕝] (hs : StrictConvex 𝕜 s) (f : E →ₗ[𝕝] F) (hf : IsOpenMap f) :
    StrictConvex 𝕜 (f '' s) :=
  by
  rintro _ ⟨x, hx, rfl⟩ _ ⟨y, hy, rfl⟩ hxy a b ha hb hab
  refine' hf.image_interior_subset _ ⟨a • x + b • y, hs hx hy (ne_of_apply_ne _ hxy) ha hb hab, _⟩
  rw [map_add, f.map_smul_of_tower a, f.map_smul_of_tower b]
#align strict_convex.linear_image StrictConvex.linear_image

/- warning: strict_convex.is_linear_image -> StrictConvex.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 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommMonoid.{u2} E] [_inst_5 : AddCommMonoid.{u3} F] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) s) -> (forall {f : E -> F}, (IsLinearMap.{u1, u2, u3} 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 f) -> (IsOpenMap.{u2, u3} E F _inst_2 _inst_3 f) -> (StrictConvex.{u1, u3} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5))) (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_5))) (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_5))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) (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 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u1} F] [_inst_4 : AddCommMonoid.{u2} E] [_inst_5 : AddCommMonoid.{u1} F] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u3, u1} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_5] {s : Set.{u2} E}, (StrictConvex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_4 _inst_6)))) s) -> (forall {f : E -> F}, (IsLinearMap.{u3, u2, u1} 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 f) -> (IsOpenMap.{u2, u1} E F _inst_2 _inst_3 f) -> (StrictConvex.{u3, u1} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 F (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} F (AddCommMonoid.toAddMonoid.{u1} F _inst_5)) (Module.toMulActionWithZero.{u3, u1} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_5 _inst_7)))) (Set.image.{u2, u1} E F f s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.is_linear_image StrictConvex.is_linear_imageₓ'. -/
theorem StrictConvex.is_linear_image (hs : StrictConvex 𝕜 s) {f : E → F} (h : IsLinearMap 𝕜 f)
    (hf : IsOpenMap f) : StrictConvex 𝕜 (f '' s) :=
  hs.linear_image (h.mk' f) hf
#align strict_convex.is_linear_image StrictConvex.is_linear_image

/- warning: strict_convex.linear_preimage -> StrictConvex.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 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommMonoid.{u2} E] [_inst_5 : AddCommMonoid.{u3} F] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5] {s : Set.{u3} F}, (StrictConvex.{u1, u3} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5))) (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_5))) (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_5))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) 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_4 _inst_5 _inst_6 _inst_7), (Continuous.{u2, u3} E F _inst_2 _inst_3 (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_4 _inst_5 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_4 _inst_5 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f)) -> (Function.Injective.{succ u2, succ 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_4 _inst_5 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_4 _inst_5 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f)) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) (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_4 _inst_5 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_4 _inst_5 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 (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 : TopologicalSpace.{u1} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommMonoid.{u1} E] [_inst_5 : AddCommMonoid.{u3} F] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u2, u3} 𝕜 F (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_5] {s : Set.{u3} F}, (StrictConvex.{u2, u3} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 F (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 F (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5)) (Module.toMulActionWithZero.{u2, u3} 𝕜 F (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_5 _inst_7)))) s) -> (forall (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_4 _inst_5 _inst_6 _inst_7), (Continuous.{u1, u3} E F _inst_2 _inst_3 (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_4 _inst_5 _inst_6 _inst_7) 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_4 _inst_5 _inst_6 _inst_7 (RingHom.id.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))) f)) -> (Function.Injective.{succ u1, succ 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_4 _inst_5 _inst_6 _inst_7) 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_4 _inst_5 _inst_6 _inst_7 (RingHom.id.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))) f)) -> (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4 _inst_6)))) (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_4 _inst_5 _inst_6 _inst_7) 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_4 _inst_5 _inst_6 _inst_7 (RingHom.id.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))) f) s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.linear_preimage StrictConvex.linear_preimageₓ'. -/
theorem StrictConvex.linear_preimage {s : Set F} (hs : StrictConvex 𝕜 s) (f : E →ₗ[𝕜] F)
    (hf : Continuous f) (hfinj : Injective f) : StrictConvex 𝕜 (s.Preimage f) :=
  by
  intro x hx y hy hxy a b ha hb hab
  refine' preimage_interior_subset_interior_preimage hf _
  rw [mem_preimage, f.map_add, f.map_smul, f.map_smul]
  exact hs hx hy (hfinj.ne hxy) ha hb hab
#align strict_convex.linear_preimage StrictConvex.linear_preimage

/- warning: strict_convex.is_linear_preimage -> StrictConvex.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 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommMonoid.{u2} E] [_inst_5 : AddCommMonoid.{u3} F] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5] {s : Set.{u3} F}, (StrictConvex.{u1, u3} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5))) (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_5))) (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_5))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_5 _inst_7)))) s) -> (forall {f : E -> F}, (IsLinearMap.{u1, u2, u3} 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 f) -> (Continuous.{u2, u3} E F _inst_2 _inst_3 f) -> (Function.Injective.{succ u2, succ u3} E F f) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_4))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_4 _inst_6)))) (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 : TopologicalSpace.{u1} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommMonoid.{u1} E] [_inst_5 : AddCommMonoid.{u3} F] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4] [_inst_7 : Module.{u2, u3} 𝕜 F (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_5] {s : Set.{u3} F}, (StrictConvex.{u2, u3} 𝕜 F _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 F (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 F (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_5)) (Module.toMulActionWithZero.{u2, u3} 𝕜 F (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_5 _inst_7)))) s) -> (forall {f : E -> F}, (IsLinearMap.{u2, u1, u3} 𝕜 E F (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4 _inst_5 _inst_6 _inst_7 f) -> (Continuous.{u1, u3} E F _inst_2 _inst_3 f) -> (Function.Injective.{succ u1, succ u3} E F f) -> (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_4 (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_4)) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_4 _inst_6)))) (Set.preimage.{u1, u3} E F f s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.is_linear_preimage StrictConvex.is_linear_preimageₓ'. -/
theorem StrictConvex.is_linear_preimage {s : Set F} (hs : StrictConvex 𝕜 s) {f : E → F}
    (h : IsLinearMap 𝕜 f) (hf : Continuous f) (hfinj : Injective f) :
    StrictConvex 𝕜 (s.Preimage f) :=
  hs.linear_preimage (h.mk' f) hf hfinj
#align strict_convex.is_linear_preimage StrictConvex.is_linear_preimage

section LinearOrderedCancelAddCommMonoid

variable [TopologicalSpace β] [LinearOrderedCancelAddCommMonoid β] [OrderTopology β] [Module 𝕜 β]
  [OrderedSMul 𝕜 β]

/- warning: set.ord_connected.strict_convex -> Set.OrdConnected.strictConvex is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] {s : Set.{u2} β}, (Set.OrdConnected.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) s) -> (StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) s)
but is expected to have type
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] {s : Set.{u2} β}, (Set.OrdConnected.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) s) -> (StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toSMul.{u1, u2} 𝕜 β (AddRightCancelMonoid.toZero.{u2} β (AddCancelMonoid.toAddRightCancelMonoid.{u2} β (AddCancelCommMonoid.toAddCancelMonoid.{u2} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 β (MonoidWithZero.toZero.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} β (AddCancelMonoid.toAddRightCancelMonoid.{u2} β (AddCancelCommMonoid.toAddCancelMonoid.{u2} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} β (AddCancelMonoid.toAddRightCancelMonoid.{u2} β (AddCancelCommMonoid.toAddCancelMonoid.{u2} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) s)
Case conversion may be inaccurate. Consider using '#align set.ord_connected.strict_convex Set.OrdConnected.strictConvexₓ'. -/
protected theorem Set.OrdConnected.strictConvex {s : Set β} (hs : OrdConnected s) :
    StrictConvex 𝕜 s :=
  by
  refine' strictConvex_iff_openSegment_subset.2 fun x hx y hy hxy => _
  cases' hxy.lt_or_lt with hlt hlt <;> [skip, rw [openSegment_symm]] <;>
    exact
      (openSegment_subset_Ioo hlt).trans
        (is_open_Ioo.subset_interior_iff.2 <| Ioo_subset_Icc_self.trans <| hs.out ‹_› ‹_›)
#align set.ord_connected.strict_convex Set.OrdConnected.strictConvex

/- warning: strict_convex_Iic -> strictConvex_Iic is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Iic.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Iic.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r)
Case conversion may be inaccurate. Consider using '#align strict_convex_Iic strictConvex_Iicₓ'. -/
theorem strictConvex_Iic (r : β) : StrictConvex 𝕜 (Iic r) :=
  ordConnected_Iic.StrictConvex
#align strict_convex_Iic strictConvex_Iic

/- warning: strict_convex_Ici -> strictConvex_Ici is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Ici.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Ici.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r)
Case conversion may be inaccurate. Consider using '#align strict_convex_Ici strictConvex_Iciₓ'. -/
theorem strictConvex_Ici (r : β) : StrictConvex 𝕜 (Ici r) :=
  ordConnected_Ici.StrictConvex
#align strict_convex_Ici strictConvex_Ici

/- warning: strict_convex_Iio -> strictConvex_Iio is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Iio.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Iio.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r)
Case conversion may be inaccurate. Consider using '#align strict_convex_Iio strictConvex_Iioₓ'. -/
theorem strictConvex_Iio (r : β) : StrictConvex 𝕜 (Iio r) :=
  ordConnected_Iio.StrictConvex
#align strict_convex_Iio strictConvex_Iio

/- warning: strict_convex_Ioi -> strictConvex_Ioi is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Ioi.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Ioi.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r)
Case conversion may be inaccurate. Consider using '#align strict_convex_Ioi strictConvex_Ioiₓ'. -/
theorem strictConvex_Ioi (r : β) : StrictConvex 𝕜 (Ioi r) :=
  ordConnected_Ioi.StrictConvex
#align strict_convex_Ioi strictConvex_Ioi

/- warning: strict_convex_Icc -> strictConvex_Icc is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Icc.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Icc.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r s)
Case conversion may be inaccurate. Consider using '#align strict_convex_Icc strictConvex_Iccₓ'. -/
theorem strictConvex_Icc (r s : β) : StrictConvex 𝕜 (Icc r s) :=
  ordConnected_Icc.StrictConvex
#align strict_convex_Icc strictConvex_Icc

/- warning: strict_convex_Ioo -> strictConvex_Ioo is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Ioo.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Ioo.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r s)
Case conversion may be inaccurate. Consider using '#align strict_convex_Ioo strictConvex_Iooₓ'. -/
theorem strictConvex_Ioo (r s : β) : StrictConvex 𝕜 (Ioo r s) :=
  ordConnected_Ioo.StrictConvex
#align strict_convex_Ioo strictConvex_Ioo

/- warning: strict_convex_Ico -> strictConvex_Ico is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Ico.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Ico.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r s)
Case conversion may be inaccurate. Consider using '#align strict_convex_Ico strictConvex_Icoₓ'. -/
theorem strictConvex_Ico (r s : β) : StrictConvex 𝕜 (Ico r s) :=
  ordConnected_Ico.StrictConvex
#align strict_convex_Ico strictConvex_Ico

/- warning: strict_convex_Ioc -> strictConvex_Ioc is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.Ioc.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))) r s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.Ioc.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))) r s)
Case conversion may be inaccurate. Consider using '#align strict_convex_Ioc strictConvex_Iocₓ'. -/
theorem strictConvex_Ioc (r s : β) : StrictConvex 𝕜 (Ioc r s) :=
  ordConnected_Ioc.StrictConvex
#align strict_convex_Ioc strictConvex_Ioc

/- warning: strict_convex_uIcc -> strictConvex_uIcc is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.uIcc.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedAddCommMonoid.toLinearOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} β _inst_9))) r s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.uIcc.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)))) r s)
Case conversion may be inaccurate. Consider using '#align strict_convex_uIcc strictConvex_uIccₓ'. -/
theorem strictConvex_uIcc (r s : β) : StrictConvex 𝕜 (uIcc r s) :=
  strictConvex_Icc _ _
#align strict_convex_uIcc strictConvex_uIcc

/- warning: strict_convex_uIoc -> strictConvex_uIoc is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_8 : TopologicalSpace.{u2} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_10 : OrderTopology.{u2} β _inst_8 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))] [_inst_11 : Module.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))] [_inst_12 : OrderedSMul.{u1, u2} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u1, u2} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_9)) _inst_11)))) (Set.uIoc.{u2} β (LinearOrderedAddCommMonoid.toLinearOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} β _inst_9)) r s)
but is expected to have type
  forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_8 : TopologicalSpace.{u1} β] [_inst_9 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_10 : OrderTopology.{u1} β _inst_8 (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)))] [_inst_11 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))] [_inst_12 : OrderedSMul.{u2, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11))] (r : β) (s : β), StrictConvex.{u2, u1} 𝕜 β _inst_1 _inst_8 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_9)) _inst_11)))) (Set.uIoc.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_9)) r s)
Case conversion may be inaccurate. Consider using '#align strict_convex_uIoc strictConvex_uIocₓ'. -/
theorem strictConvex_uIoc (r s : β) : StrictConvex 𝕜 (uIoc r s) :=
  strictConvex_Ioc _ _
#align strict_convex_uIoc strictConvex_uIoc

end LinearOrderedCancelAddCommMonoid

end Module

end AddCommMonoid

section AddCancelCommMonoid

variable [AddCancelCommMonoid E] [ContinuousAdd E] [Module 𝕜 E] {s : Set E}

/- warning: strict_convex.preimage_add_right -> StrictConvex.preimage_add_right is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCancelCommMonoid.{u2} E] [_inst_5 : ContinuousAdd.{u2} E _inst_2 (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_4)))))] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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 (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_4)))))) z x) s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCancelCommMonoid.{u1} E] [_inst_5 : ContinuousAdd.{u1} E _inst_2 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddRightCancelMonoid.toAddMonoid.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4)))))] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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 (AddRightCancelMonoid.toAddMonoid.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4)))))) z x) s))
Case conversion may be inaccurate. Consider using '#align strict_convex.preimage_add_right StrictConvex.preimage_add_rightₓ'. -/
/-- The translation of a strictly convex set is also strictly convex. -/
theorem StrictConvex.preimage_add_right (hs : StrictConvex 𝕜 s) (z : E) :
    StrictConvex 𝕜 ((fun x => z + x) ⁻¹' s) :=
  by
  intro x hx y hy hxy a b ha hb hab
  refine' preimage_interior_subset_interior_preimage (continuous_add_left _) _
  have h := hs hx hy ((add_right_injective _).Ne hxy) ha hb hab
  rwa [smul_add, smul_add, add_add_add_comm, ← add_smul, hab, one_smul] at h
#align strict_convex.preimage_add_right StrictConvex.preimage_add_right

/- warning: strict_convex.preimage_add_left -> StrictConvex.preimage_add_left is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCancelCommMonoid.{u2} E] [_inst_5 : ContinuousAdd.{u2} E _inst_2 (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_4)))))] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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 (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_4)))))) x z) s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCancelCommMonoid.{u1} E] [_inst_5 : ContinuousAdd.{u1} E _inst_2 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddRightCancelMonoid.toAddMonoid.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4)))))] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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 (AddRightCancelMonoid.toAddMonoid.{u1} E (AddCancelMonoid.toAddRightCancelMonoid.{u1} E (AddCancelCommMonoid.toAddCancelMonoid.{u1} E _inst_4)))))) x z) s))
Case conversion may be inaccurate. Consider using '#align strict_convex.preimage_add_left StrictConvex.preimage_add_leftₓ'. -/
/-- The translation of a strictly convex set is also strictly convex. -/
theorem StrictConvex.preimage_add_left (hs : StrictConvex 𝕜 s) (z : E) :
    StrictConvex 𝕜 ((fun x => x + z) ⁻¹' s) := by
  simpa only [add_comm] using hs.preimage_add_right z
#align strict_convex.preimage_add_left StrictConvex.preimage_add_left

end AddCancelCommMonoid

section AddCommGroup

variable [AddCommGroup E] [AddCommGroup F] [Module 𝕜 E] [Module 𝕜 F]

section continuous_add

variable [ContinuousAdd E] {s t : Set E}

/- warning: strict_convex.add -> StrictConvex.add is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_8 : ContinuousAdd.{u2} E _inst_2 (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))))] {s : Set.{u2} E} {t : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) t) -> (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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 (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4))))))) s t))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] [_inst_8 : ContinuousAdd.{u1} E _inst_2 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))] {s : Set.{u1} E} {t : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) t) -> (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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 (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4))))))) s t))
Case conversion may be inaccurate. Consider using '#align strict_convex.add StrictConvex.addₓ'. -/
theorem StrictConvex.add (hs : StrictConvex 𝕜 s) (ht : StrictConvex 𝕜 t) : StrictConvex 𝕜 (s + t) :=
  by
  rintro _ ⟨v, w, hv, hw, rfl⟩ _ ⟨x, y, hx, hy, rfl⟩ h a b ha hb hab
  rw [smul_add, smul_add, add_add_add_comm]
  obtain rfl | hvx := eq_or_ne v x
  · refine' interior_mono (add_subset_add (singleton_subset_iff.2 hv) subset.rfl) _
    rw [Convex.combo_self hab, singleton_add]
    exact
      (isOpenMap_add_left _).image_interior_subset _
        (mem_image_of_mem _ <| ht hw hy (ne_of_apply_ne _ h) ha hb hab)
  exact
    subset_interior_add_left
      (add_mem_add (hs hv hx hvx ha hb hab) <| ht.convex hw hy ha.le hb.le hab)
#align strict_convex.add StrictConvex.add

/- warning: strict_convex.add_left -> StrictConvex.add_left is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_8 : ContinuousAdd.{u2} E _inst_2 (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))))] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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 (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))))) z x) s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] [_inst_8 : ContinuousAdd.{u1} E _inst_2 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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 (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))) z x) s))
Case conversion may be inaccurate. Consider using '#align strict_convex.add_left StrictConvex.add_leftₓ'. -/
theorem StrictConvex.add_left (hs : StrictConvex 𝕜 s) (z : E) :
    StrictConvex 𝕜 ((fun x => z + x) '' s) := by
  simpa only [singleton_add] using (strictConvex_singleton z).add hs
#align strict_convex.add_left StrictConvex.add_left

/- warning: strict_convex.add_right -> StrictConvex.add_right is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_8 : ContinuousAdd.{u2} E _inst_2 (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))))] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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 (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))))) x z) s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] [_inst_8 : ContinuousAdd.{u1} E _inst_2 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (forall (z : E), StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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 (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))) x z) s))
Case conversion may be inaccurate. Consider using '#align strict_convex.add_right StrictConvex.add_rightₓ'. -/
theorem StrictConvex.add_right (hs : StrictConvex 𝕜 s) (z : E) :
    StrictConvex 𝕜 ((fun x => x + z) '' s) := by simpa only [add_comm] using hs.add_left z
#align strict_convex.add_right StrictConvex.add_right

/- warning: strict_convex.vadd -> StrictConvex.vadd is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_8 : ContinuousAdd.{u2} E _inst_2 (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))))] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall (x : E), StrictConvex.{u1, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{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_4)))) (MulActionWithZero.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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (VAdd.vadd.{u2, u2} E (Set.{u2} E) (Set.vaddSet.{u2, u2} E E (Add.toVAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4))))))) x s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] [_inst_8 : ContinuousAdd.{u1} E _inst_2 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (forall (x : E), StrictConvex.{u2, u1} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (HVAdd.hVAdd.{u1, u1, u1} E (Set.{u1} E) (Set.{u1} E) (instHVAdd.{u1, u1} E (Set.{u1} E) (Set.vaddSet.{u1, u1} E E (AddAction.toVAdd.{u1, u1} E E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4))) (AddTorsor.toAddAction.{u1, u1} E E (AddCommGroup.toAddGroup.{u1} E _inst_4) (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)))))) x s))
Case conversion may be inaccurate. Consider using '#align strict_convex.vadd StrictConvex.vaddₓ'. -/
/-- The translation of a strictly convex set is also strictly convex. -/
theorem StrictConvex.vadd (hs : StrictConvex 𝕜 s) (x : E) : StrictConvex 𝕜 (x +ᵥ s) :=
  hs.add_left x
#align strict_convex.vadd StrictConvex.vadd

end continuous_add

section ContinuousSmul

variable [LinearOrderedField 𝕝] [Module 𝕝 E] [ContinuousConstSMul 𝕝 E]
  [LinearMap.CompatibleSMul E E 𝕜 𝕝] {s : Set E} {x : E}

/- warning: strict_convex.smul -> StrictConvex.smul is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {𝕝 : Type.{u2}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u3} E] [_inst_4 : AddCommGroup.{u3} E] [_inst_6 : Module.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)] [_inst_8 : LinearOrderedField.{u2} 𝕝] [_inst_9 : Module.{u2, u3} 𝕝 E (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)] [_inst_10 : ContinuousConstSMul.{u2, u3} 𝕝 E _inst_2 (SMulZeroClass.toHasSmul.{u2, u3} 𝕝 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} 𝕝 E (MulZeroClass.toHasZero.{u2} 𝕝 (MulZeroOneClass.toMulZeroClass.{u2} 𝕝 (MonoidWithZero.toMulZeroOneClass.{u2} 𝕝 (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕝 E (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u2, u3} 𝕝 E (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_9))))] [_inst_11 : LinearMap.CompatibleSMul.{u3, u3, u1, u2} E E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) 𝕜 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) _inst_9 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) _inst_9] {s : Set.{u3} E}, (StrictConvex.{u1, u3} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) s) -> (forall (c : 𝕝), StrictConvex.{u1, u3} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) (SMul.smul.{u2, u3} 𝕝 (Set.{u3} E) (Set.smulSet.{u2, u3} 𝕝 E (SMulZeroClass.toHasSmul.{u2, u3} 𝕝 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} 𝕝 E (MulZeroClass.toHasZero.{u2} 𝕝 (MulZeroOneClass.toMulZeroClass.{u2} 𝕝 (MonoidWithZero.toMulZeroOneClass.{u2} 𝕝 (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕝 E (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u2, u3} 𝕝 E (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_9))))) c s))
but is expected to have type
  forall {𝕜 : Type.{u3}} {𝕝 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_8 : LinearOrderedField.{u1} 𝕝] [_inst_9 : Module.{u1, u2} 𝕝 E (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_10 : ContinuousConstSMul.{u1, 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_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕝 E (CommMonoidWithZero.toZero.{u1} 𝕝 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕝 (Semifield.toCommGroupWithZero.{u1} 𝕝 (LinearOrderedSemifield.toSemifield.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕝 E (Semiring.toMonoidWithZero.{u1} 𝕝 (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (Module.toMulActionWithZero.{u1, u2} 𝕝 E (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_9))))] [_inst_11 : LinearMap.CompatibleSMul.{u2, u2, u3, u1} E E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) 𝕜 𝕝 (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (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_4))))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) _inst_9 (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_4))))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) _inst_9] {s : Set.{u2} E}, (StrictConvex.{u3, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall (c : 𝕝), StrictConvex.{u3, u2} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (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_4))))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (HSMul.hSMul.{u1, u2, u2} 𝕝 (Set.{u2} E) (Set.{u2} E) (instHSMul.{u1, u2} 𝕝 (Set.{u2} E) (Set.smulSet.{u1, u2} 𝕝 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_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕝 E (CommMonoidWithZero.toZero.{u1} 𝕝 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕝 (Semifield.toCommGroupWithZero.{u1} 𝕝 (LinearOrderedSemifield.toSemifield.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕝 E (Semiring.toMonoidWithZero.{u1} 𝕝 (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_4))))) (Module.toMulActionWithZero.{u1, u2} 𝕝 E (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_9)))))) c s))
Case conversion may be inaccurate. Consider using '#align strict_convex.smul StrictConvex.smulₓ'. -/
theorem StrictConvex.smul (hs : StrictConvex 𝕜 s) (c : 𝕝) : StrictConvex 𝕜 (c • s) :=
  by
  obtain rfl | hc := eq_or_ne c 0
  · exact (subsingleton_zero_smul_set _).StrictConvex
  · exact hs.linear_image (LinearMap.lsmul _ _ c) (isOpenMap_smul₀ hc)
#align strict_convex.smul StrictConvex.smul

/- warning: strict_convex.affinity -> StrictConvex.affinity is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {𝕝 : Type.{u2}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u3} E] [_inst_4 : AddCommGroup.{u3} E] [_inst_6 : Module.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)] [_inst_8 : LinearOrderedField.{u2} 𝕝] [_inst_9 : Module.{u2, u3} 𝕝 E (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)] [_inst_10 : ContinuousConstSMul.{u2, u3} 𝕝 E _inst_2 (SMulZeroClass.toHasSmul.{u2, u3} 𝕝 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} 𝕝 E (MulZeroClass.toHasZero.{u2} 𝕝 (MulZeroOneClass.toMulZeroClass.{u2} 𝕝 (MonoidWithZero.toMulZeroOneClass.{u2} 𝕝 (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕝 E (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u2, u3} 𝕝 E (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_9))))] [_inst_11 : LinearMap.CompatibleSMul.{u3, u3, u1, u2} E E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) 𝕜 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) _inst_9 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) _inst_9] {s : Set.{u3} E} [_inst_12 : ContinuousAdd.{u3} E _inst_2 (AddZeroClass.toHasAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_4)))))], (StrictConvex.{u1, u3} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) s) -> (forall (z : E) (c : 𝕝), StrictConvex.{u1, u3} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) (VAdd.vadd.{u3, u3} E (Set.{u3} E) (Set.vaddSet.{u3, u3} E E (Add.toVAdd.{u3} E (AddZeroClass.toHasAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_4))))))) z (SMul.smul.{u2, u3} 𝕝 (Set.{u3} E) (Set.smulSet.{u2, u3} 𝕝 E (SMulZeroClass.toHasSmul.{u2, u3} 𝕝 E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} 𝕝 E (MulZeroClass.toHasZero.{u2} 𝕝 (MulZeroOneClass.toMulZeroClass.{u2} 𝕝 (MonoidWithZero.toMulZeroOneClass.{u2} 𝕝 (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕝 E (Semiring.toMonoidWithZero.{u2} 𝕝 (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)))) (Module.toMulActionWithZero.{u2, u3} 𝕝 E (Ring.toSemiring.{u2} 𝕝 (DivisionRing.toRing.{u2} 𝕝 (Field.toDivisionRing.{u2} 𝕝 (LinearOrderedField.toField.{u2} 𝕝 _inst_8)))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_9))))) c s)))
but is expected to have type
  forall {𝕜 : Type.{u2}} {𝕝 : Type.{u1}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u3} E] [_inst_4 : AddCommGroup.{u3} E] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)] [_inst_8 : LinearOrderedField.{u1} 𝕝] [_inst_9 : Module.{u1, u3} 𝕝 E (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4)] [_inst_10 : ContinuousConstSMul.{u1, u3} 𝕝 E _inst_2 (SMulZeroClass.toSMul.{u1, u3} 𝕝 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u3} 𝕝 E (CommMonoidWithZero.toZero.{u1} 𝕝 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕝 (Semifield.toCommGroupWithZero.{u1} 𝕝 (LinearOrderedSemifield.toSemifield.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕝 E (Semiring.toMonoidWithZero.{u1} 𝕝 (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕝 E (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_9))))] [_inst_11 : LinearMap.CompatibleSMul.{u3, u3, u2, u1} E E (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) 𝕜 𝕝 (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) _inst_9 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) _inst_9] {s : Set.{u3} E} [_inst_12 : ContinuousAdd.{u3} E _inst_2 (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_4)))))], (StrictConvex.{u2, u3} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) s) -> (forall (z : E) (c : 𝕝), StrictConvex.{u2, u3} 𝕜 E _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_6)))) (HVAdd.hVAdd.{u3, u3, u3} E (Set.{u3} E) (Set.{u3} E) (instHVAdd.{u3, u3} E (Set.{u3} E) (Set.vaddSet.{u3, u3} E E (AddAction.toVAdd.{u3, u3} E E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_4))) (AddTorsor.toAddAction.{u3, u3} E E (AddCommGroup.toAddGroup.{u3} E _inst_4) (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_4)))))) z (HSMul.hSMul.{u1, u3, u3} 𝕝 (Set.{u3} E) (Set.{u3} E) (instHSMul.{u1, u3} 𝕝 (Set.{u3} E) (Set.smulSet.{u1, u3} 𝕝 E (SMulZeroClass.toSMul.{u1, u3} 𝕝 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u3} 𝕝 E (CommMonoidWithZero.toZero.{u1} 𝕝 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕝 (Semifield.toCommGroupWithZero.{u1} 𝕝 (LinearOrderedSemifield.toSemifield.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕝 E (Semiring.toMonoidWithZero.{u1} 𝕝 (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕝 E (StrictOrderedSemiring.toSemiring.{u1} 𝕝 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕝 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕝 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕝 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕝 _inst_8))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_4) _inst_9)))))) c s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.affinity StrictConvex.affinityₓ'. -/
theorem StrictConvex.affinity [ContinuousAdd E] (hs : StrictConvex 𝕜 s) (z : E) (c : 𝕝) :
    StrictConvex 𝕜 (z +ᵥ c • s) :=
  (hs.smul c).vadd z
#align strict_convex.affinity StrictConvex.affinity

end ContinuousSmul

end AddCommGroup

end OrderedSemiring

section OrderedCommSemiring

variable [OrderedCommSemiring 𝕜] [TopologicalSpace E]

section AddCommGroup

variable [AddCommGroup E] [Module 𝕜 E] [NoZeroSMulDivisors 𝕜 E] [ContinuousConstSMul 𝕜 E]
  {s : Set E}

/- warning: strict_convex.preimage_smul -> StrictConvex.preimage_smul is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_3 : AddCommGroup.{u2} E] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)] [_inst_5 : NoZeroSMulDivisors.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_3))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_4))))] [_inst_6 : ContinuousConstSMul.{u1, 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_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_4))))] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_4)))) s) -> (forall (c : 𝕜), StrictConvex.{u1, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_4)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_4)))) c z) s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_3 : AddCommGroup.{u1} E] [_inst_4 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3)] [_inst_5 : NoZeroSMulDivisors.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommSemiring.toCommMonoidWithZero.{u2} 𝕜 (OrderedCommSemiring.toCommSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (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_3))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommSemiring.toCommMonoidWithZero.{u2} 𝕜 (OrderedCommSemiring.toCommSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_4))))] [_inst_6 : ContinuousConstSMul.{u2, 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_3))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommSemiring.toCommMonoidWithZero.{u2} 𝕜 (OrderedCommSemiring.toCommSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_4))))] {s : Set.{u1} E}, (StrictConvex.{u2, u1} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) (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_3))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommSemiring.toCommMonoidWithZero.{u2} 𝕜 (OrderedCommSemiring.toCommSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_4)))) s) -> (forall (c : 𝕜), StrictConvex.{u2, u1} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) (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_3))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommSemiring.toCommMonoidWithZero.{u2} 𝕜 (OrderedCommSemiring.toCommSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_4)))) (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 (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommSemiring.toCommMonoidWithZero.{u2} 𝕜 (OrderedCommSemiring.toCommSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_4))))) c z) s))
Case conversion may be inaccurate. Consider using '#align strict_convex.preimage_smul StrictConvex.preimage_smulₓ'. -/
theorem StrictConvex.preimage_smul (hs : StrictConvex 𝕜 s) (c : 𝕜) :
    StrictConvex 𝕜 ((fun z => c • z) ⁻¹' s) := by
  classical
    obtain rfl | hc := eq_or_ne c 0
    · simp_rw [zero_smul, preimage_const]
      split_ifs
      · exact strictConvex_univ
      · exact strictConvex_empty
    refine' hs.linear_preimage (LinearMap.lsmul _ _ c) _ (smul_right_injective E hc)
    unfold LinearMap.lsmul LinearMap.mk₂ LinearMap.mk₂' LinearMap.mk₂'ₛₗ
    exact continuous_const_smul _
#align strict_convex.preimage_smul StrictConvex.preimage_smul

end AddCommGroup

end OrderedCommSemiring

section OrderedRing

variable [OrderedRing 𝕜] [TopologicalSpace E] [TopologicalSpace F]

section AddCommGroup

variable [AddCommGroup E] [AddCommGroup F] [Module 𝕜 E] [Module 𝕜 F] {s t : Set E} {x y : E}

/- warning: strict_convex.eq_of_open_segment_subset_frontier -> StrictConvex.eq_of_openSegment_subset_frontier is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E} {x : E} {y : E} [_inst_8 : Nontrivial.{u1} 𝕜] [_inst_9 : DenselyOrdered.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (OrderedRing.toOrderedAddCommGroup.{u1} 𝕜 _inst_1))))], (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (openSegment.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) x y) (frontier.{u2} E _inst_2 s)) -> (Eq.{succ u2} E x y)
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E} {x : E} {y : E} [_inst_8 : Nontrivial.{u2} 𝕜] [_inst_9 : DenselyOrdered.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedRing.toPartialOrder.{u2} 𝕜 _inst_1)))], (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (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 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) x y) (frontier.{u1} E _inst_2 s)) -> (Eq.{succ u1} E x y)
Case conversion may be inaccurate. Consider using '#align strict_convex.eq_of_open_segment_subset_frontier StrictConvex.eq_of_openSegment_subset_frontierₓ'. -/
theorem StrictConvex.eq_of_openSegment_subset_frontier [Nontrivial 𝕜] [DenselyOrdered 𝕜]
    (hs : StrictConvex 𝕜 s) (hx : x ∈ s) (hy : y ∈ s) (h : openSegment 𝕜 x y ⊆ frontier s) :
    x = y := by
  obtain ⟨a, ha₀, ha₁⟩ := DenselyOrdered.dense (0 : 𝕜) 1 zero_lt_one
  classical
    by_contra hxy
    exact
      (h ⟨a, 1 - a, ha₀, sub_pos_of_lt ha₁, add_sub_cancel'_right _ _, rfl⟩).2
        (hs hx hy hxy ha₀ (sub_pos_of_lt ha₁) <| add_sub_cancel'_right _ _)
#align strict_convex.eq_of_open_segment_subset_frontier StrictConvex.eq_of_openSegment_subset_frontier

/- warning: strict_convex.add_smul_mem -> StrictConvex.add_smul_mem is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E} {x : E} {y : E}, (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (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_4)))))) x y) s) -> (Ne.{succ u2} E y (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_4))))))))) -> (forall {t : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{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) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{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_4)))))) 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_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) t y)) (interior.{u2} E _inst_2 s)))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E} {x : E} {y : E}, (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) 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_4)))))) x y) s) -> (Ne.{succ u1} E y (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_4)))))))) -> (forall {t : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{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) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{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_4)))))) 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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6))))) t y)) (interior.{u1} E _inst_2 s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.add_smul_mem StrictConvex.add_smul_memₓ'. -/
theorem StrictConvex.add_smul_mem (hs : StrictConvex 𝕜 s) (hx : x ∈ s) (hxy : x + y ∈ s)
    (hy : y ≠ 0) {t : 𝕜} (ht₀ : 0 < t) (ht₁ : t < 1) : x + t • y ∈ interior s :=
  by
  have h : x + t • y = (1 - t) • x + t • (x + y) := by
    rw [smul_add, ← add_assoc, ← add_smul, sub_add_cancel, one_smul]
  rw [h]
  refine' hs hx hxy (fun h => hy <| add_left_cancel _) (sub_pos_of_lt ht₁) ht₀ (sub_add_cancel _ _)
  exact x
  rw [← h, add_zero]
#align strict_convex.add_smul_mem StrictConvex.add_smul_mem

/- warning: strict_convex.smul_mem_of_zero_mem -> StrictConvex.smul_mem_of_zero_mem is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E} {x : E}, (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (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_4)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Ne.{succ u2} E x (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_4))))))))) -> (forall {t : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{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) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{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_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) t x) (interior.{u2} E _inst_2 s)))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E} {x : E}, (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (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_4))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (Ne.{succ u1} E x (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_4)))))))) -> (forall {t : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{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) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6))))) t x) (interior.{u1} E _inst_2 s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.smul_mem_of_zero_mem StrictConvex.smul_mem_of_zero_memₓ'. -/
theorem StrictConvex.smul_mem_of_zero_mem (hs : StrictConvex 𝕜 s) (zero_mem : (0 : E) ∈ s)
    (hx : x ∈ s) (hx₀ : x ≠ 0) {t : 𝕜} (ht₀ : 0 < t) (ht₁ : t < 1) : t • x ∈ interior s := by
  simpa using hs.add_smul_mem zero_mem (by simpa using hx) hx₀ ht₀ ht₁
#align strict_convex.smul_mem_of_zero_mem StrictConvex.smul_mem_of_zero_mem

/- warning: strict_convex.add_smul_sub_mem -> StrictConvex.add_smul_sub_mem is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E} {x : E} {y : E}, (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {t : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{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) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{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_4)))))) 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_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) 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_4)))) y x))) (interior.{u2} E _inst_2 s)))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E} {x : E} {y : E}, (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y s) -> (Ne.{succ u1} E x y) -> (forall {t : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{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) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{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_4)))))) 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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6))))) 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_4)))) y x))) (interior.{u1} E _inst_2 s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.add_smul_sub_mem StrictConvex.add_smul_sub_memₓ'. -/
theorem StrictConvex.add_smul_sub_mem (h : StrictConvex 𝕜 s) (hx : x ∈ s) (hy : y ∈ s) (hxy : x ≠ y)
    {t : 𝕜} (ht₀ : 0 < t) (ht₁ : t < 1) : x + t • (y - x) ∈ interior s :=
  by
  apply h.open_segment_subset hx hy hxy
  rw [openSegment_eq_image']
  exact mem_image_of_mem _ ⟨ht₀, ht₁⟩
#align strict_convex.add_smul_sub_mem StrictConvex.add_smul_sub_mem

/- warning: strict_convex.affine_preimage -> StrictConvex.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 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommGroup.{u2} E] [_inst_5 : AddCommGroup.{u3} F] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_7 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_5)] {s : Set.{u3} F}, (StrictConvex.{u1, u3} 𝕜 F (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (AddCommGroup.toAddCommMonoid.{u3} F _inst_5) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_5)))) (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_5)))) (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_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_5) _inst_7)))) s) -> (forall {f : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))}, (Continuous.{u2, u3} E F _inst_2 _inst_3 (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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f)) -> (Function.Injective.{succ u2, succ 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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f)) -> (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f) s)))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommGroup.{u1} E] [_inst_5 : AddCommGroup.{u3} F] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] [_inst_7 : Module.{u2, u3} 𝕜 F (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_5)] {s : Set.{u3} F}, (StrictConvex.{u2, u3} 𝕜 F (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_3 (AddCommGroup.toAddCommMonoid.{u3} F _inst_5) (SMulZeroClass.toSMul.{u2, u3} 𝕜 F (NegZeroClass.toZero.{u3} F (SubNegZeroMonoid.toNegZeroClass.{u3} F (SubtractionMonoid.toSubNegZeroMonoid.{u3} F (SubtractionCommMonoid.toSubtractionMonoid.{u3} F (AddCommGroup.toDivisionAddCommMonoid.{u3} F _inst_5))))) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 F (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)))) (NegZeroClass.toZero.{u3} F (SubNegZeroMonoid.toNegZeroClass.{u3} F (SubtractionMonoid.toSubNegZeroMonoid.{u3} F (SubtractionCommMonoid.toSubtractionMonoid.{u3} F (AddCommGroup.toDivisionAddCommMonoid.{u3} F _inst_5))))) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 F (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1))) (NegZeroClass.toZero.{u3} F (SubNegZeroMonoid.toNegZeroClass.{u3} F (SubtractionMonoid.toSubNegZeroMonoid.{u3} F (SubtractionCommMonoid.toSubtractionMonoid.{u3} F (AddCommGroup.toDivisionAddCommMonoid.{u3} F _inst_5))))) (Module.toMulActionWithZero.{u2, u3} 𝕜 F (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_5) _inst_7)))) s) -> (forall {f : AffineMap.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))}, (Continuous.{u1, u3} E F _inst_2 _inst_3 (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (AffineMap.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f)) -> (Function.Injective.{succ u1, succ u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (AffineMap.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f)) -> (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (Set.preimage.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (AffineMap.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u2, u1, u1, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u2} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f) s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.affine_preimage StrictConvex.affine_preimageₓ'. -/
/-- The preimage of a strictly convex set under an affine map is strictly convex. -/
theorem StrictConvex.affine_preimage {s : Set F} (hs : StrictConvex 𝕜 s) {f : E →ᵃ[𝕜] F}
    (hf : Continuous f) (hfinj : Injective f) : StrictConvex 𝕜 (f ⁻¹' s) :=
  by
  intro x hx y hy hxy a b ha hb hab
  refine' preimage_interior_subset_interior_preimage hf _
  rw [mem_preimage, Convex.combo_affine_apply hab]
  exact hs hx hy (hfinj.ne hxy) ha hb hab
#align strict_convex.affine_preimage StrictConvex.affine_preimage

/- warning: strict_convex.affine_image -> StrictConvex.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 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u3} F] [_inst_4 : AddCommGroup.{u2} E] [_inst_5 : AddCommGroup.{u3} F] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_7 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_5)] {s : Set.{u2} E}, (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall {f : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))}, (IsOpenMap.{u2, u3} E F _inst_2 _inst_3 (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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f)) -> (StrictConvex.{u1, u3} 𝕜 F (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (AddCommGroup.toAddCommMonoid.{u3} F _inst_5) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_5)))) (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_5)))) (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_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} F _inst_5) _inst_7)))) (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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (OrderedRing.toRing.{u1} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_5))) f) s)))
but is expected to have type
  forall {𝕜 : Type.{u3}} {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : OrderedRing.{u3} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_3 : TopologicalSpace.{u1} F] [_inst_4 : AddCommGroup.{u2} E] [_inst_5 : AddCommGroup.{u1} F] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] [_inst_7 : Module.{u3, u1} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} F _inst_5)] {s : Set.{u2} E}, (StrictConvex.{u3, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (forall {f : AffineMap.{u3, u2, u2, u1, u1} 𝕜 E E F F (OrderedRing.toRing.{u3} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_5))}, (IsOpenMap.{u2, u1} E F _inst_2 _inst_3 (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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_5))) 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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_5))) f)) -> (StrictConvex.{u3, u1} 𝕜 F (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (AddCommGroup.toAddCommMonoid.{u1} F _inst_5) (SMulZeroClass.toSMul.{u3, u1} 𝕜 F (NegZeroClass.toZero.{u1} F (SubNegZeroMonoid.toNegZeroClass.{u1} F (SubtractionMonoid.toSubNegZeroMonoid.{u1} F (SubtractionCommMonoid.toSubtractionMonoid.{u1} F (AddCommGroup.toDivisionAddCommMonoid.{u1} F _inst_5))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (NegZeroClass.toZero.{u1} F (SubNegZeroMonoid.toNegZeroClass.{u1} F (SubtractionMonoid.toSubNegZeroMonoid.{u1} F (SubtractionCommMonoid.toSubtractionMonoid.{u1} F (AddCommGroup.toDivisionAddCommMonoid.{u1} F _inst_5))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} F (SubNegZeroMonoid.toNegZeroClass.{u1} F (SubtractionMonoid.toSubNegZeroMonoid.{u1} F (SubtractionCommMonoid.toSubtractionMonoid.{u1} F (AddCommGroup.toDivisionAddCommMonoid.{u1} F _inst_5))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedRing.toOrderedSemiring.{u3} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} F _inst_5) _inst_7)))) (Set.image.{u2, u1} E F (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AffineMap.{u3, u2, u2, u1, u1} 𝕜 E E F F (OrderedRing.toRing.{u3} 𝕜 _inst_1) _inst_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_5))) 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_4 _inst_6 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)) _inst_5 _inst_7 (addGroupIsAddTorsor.{u1} F (AddCommGroup.toAddGroup.{u1} F _inst_5))) f) s)))
Case conversion may be inaccurate. Consider using '#align strict_convex.affine_image StrictConvex.affine_imageₓ'. -/
/-- The image of a strictly convex set under an affine map is strictly convex. -/
theorem StrictConvex.affine_image (hs : StrictConvex 𝕜 s) {f : E →ᵃ[𝕜] F} (hf : IsOpenMap f) :
    StrictConvex 𝕜 (f '' s) :=
  by
  rintro _ ⟨x, hx, rfl⟩ _ ⟨y, hy, rfl⟩ hxy a b ha hb hab
  exact
    hf.image_interior_subset _
      ⟨a • x + b • y, ⟨hs hx hy (ne_of_apply_ne _ hxy) ha hb hab, Convex.combo_affine_apply hab⟩⟩
#align strict_convex.affine_image StrictConvex.affine_image

variable [TopologicalAddGroup E]

/- warning: strict_convex.neg -> StrictConvex.neg is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E} [_inst_8 : TopologicalAddGroup.{u2} E _inst_2 (AddCommGroup.toAddGroup.{u2} E _inst_4)], (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (Neg.neg.{u2} (Set.{u2} E) (Set.neg.{u2} E (SubNegMonoid.toHasNeg.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_4)))) s))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E} [_inst_8 : TopologicalAddGroup.{u1} E _inst_2 (AddCommGroup.toAddGroup.{u1} E _inst_4)], (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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_4)))))) s))
Case conversion may be inaccurate. Consider using '#align strict_convex.neg StrictConvex.negₓ'. -/
theorem StrictConvex.neg (hs : StrictConvex 𝕜 s) : StrictConvex 𝕜 (-s) :=
  hs.is_linear_preimage IsLinearMap.isLinearMap_neg continuous_id.neg neg_injective
#align strict_convex.neg StrictConvex.neg

/- warning: strict_convex.sub -> StrictConvex.sub is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedRing.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_4 : AddCommGroup.{u2} E] [_inst_6 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)] {s : Set.{u2} E} {t : Set.{u2} E} [_inst_8 : TopologicalAddGroup.{u2} E _inst_2 (AddCommGroup.toAddGroup.{u2} E _inst_4)], (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) s) -> (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) t) -> (StrictConvex.{u1, u2} 𝕜 E (OrderedRing.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_4)))) (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_4)))) (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_4)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (OrderedRing.toRing.{u1} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} E _inst_4) _inst_6)))) (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_4))))) s t))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : OrderedRing.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_4 : AddCommGroup.{u1} E] [_inst_6 : Module.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4)] {s : Set.{u1} E} {t : Set.{u1} E} [_inst_8 : TopologicalAddGroup.{u1} E _inst_2 (AddCommGroup.toAddGroup.{u1} E _inst_4)], (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) s) -> (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) t) -> (StrictConvex.{u2, u1} 𝕜 E (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) (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_4))))) (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_4))))) (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_4))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedRing.toOrderedSemiring.{u2} 𝕜 _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} E _inst_4) _inst_6)))) (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_4))))) s t))
Case conversion may be inaccurate. Consider using '#align strict_convex.sub StrictConvex.subₓ'. -/
theorem StrictConvex.sub (hs : StrictConvex 𝕜 s) (ht : StrictConvex 𝕜 t) : StrictConvex 𝕜 (s - t) :=
  (sub_eq_add_neg s t).symm ▸ hs.add ht.neg
#align strict_convex.sub StrictConvex.sub

end AddCommGroup

end OrderedRing

section LinearOrderedField

variable [LinearOrderedField 𝕜] [TopologicalSpace E]

section AddCommGroup

variable [AddCommGroup E] [AddCommGroup F] [Module 𝕜 E] [Module 𝕜 F] {s : Set E} {x : E}

/- warning: strict_convex_iff_div -> strictConvex_iff_div is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_3 : AddCommGroup.{u2} E] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)] {s : Set.{u2} E}, Iff (StrictConvex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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_3)))) (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_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_5)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (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_3)))))) (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_3)))) (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_3)))) (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_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_5)))) (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) 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_3)))) (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_3)))) (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_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_5)))) (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y)) (interior.{u2} E _inst_2 s))))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_3 : AddCommGroup.{u1} E] [_inst_5 : Module.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3)] {s : Set.{u1} E}, Iff (StrictConvex.{u2, u1} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) (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_3))))) (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_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_5)))) s) (Set.Pairwise.{u1} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{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))))))) a) -> (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))))))) 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_3)))))) (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_3))))) (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_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_5))))) (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} 𝕜 (StrictOrderedRing.toRing.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{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_3))))) (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_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_5))))) (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} 𝕜 (StrictOrderedRing.toRing.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))))))) a b)) y)) (interior.{u1} E _inst_2 s))))
Case conversion may be inaccurate. Consider using '#align strict_convex_iff_div strictConvex_iff_divₓ'. -/
/-- Alternative definition of set strict convexity, using division. -/
theorem strictConvex_iff_div :
    StrictConvex 𝕜 s ↔
      s.Pairwise fun x y =>
        ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → (a / (a + b)) • x + (b / (a + b)) • y ∈ interior s :=
  ⟨fun h x hx y hy hxy a b ha hb =>
    by
    apply h hx hy hxy (div_pos ha <| add_pos ha hb) (div_pos hb <| add_pos ha hb)
    rw [← add_div]
    exact div_self (add_pos ha hb).ne', fun h x hx y hy hxy a b ha hb hab => by
    convert h hx hy hxy ha hb <;> rw [hab, div_one]⟩
#align strict_convex_iff_div strictConvex_iff_div

/- warning: strict_convex.mem_smul_of_zero_mem -> StrictConvex.mem_smul_of_zero_mem is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u2} E] [_inst_3 : AddCommGroup.{u2} E] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)] {s : Set.{u2} E} {x : E}, (StrictConvex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_3)))) (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_3)))) (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_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_5)))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (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_3)))))))) s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Ne.{succ u2} E x (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_3))))))))) -> (forall {t : 𝕜}, (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} 𝕜 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_3)))) (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_3)))) (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_3)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_3) _inst_5))))) t (interior.{u2} E _inst_2 s))))
but is expected to have type
  forall {𝕜 : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : TopologicalSpace.{u1} E] [_inst_3 : AddCommGroup.{u1} E] [_inst_5 : Module.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3)] {s : Set.{u1} E} {x : E}, (StrictConvex.{u2, u1} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) (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_3))))) (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_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_5)))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (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_3))))))) s) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x s) -> (Ne.{succ u1} E x (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_3)))))))) -> (forall {t : 𝕜}, (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} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (StrictOrderedRing.toRing.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{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_3))))) (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_3))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{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_3))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_3) _inst_5)))))) t (interior.{u1} E _inst_2 s))))
Case conversion may be inaccurate. Consider using '#align strict_convex.mem_smul_of_zero_mem StrictConvex.mem_smul_of_zero_memₓ'. -/
theorem StrictConvex.mem_smul_of_zero_mem (hs : StrictConvex 𝕜 s) (zero_mem : (0 : E) ∈ s)
    (hx : x ∈ s) (hx₀ : x ≠ 0) {t : 𝕜} (ht : 1 < t) : x ∈ t • interior s :=
  by
  rw [mem_smul_set_iff_inv_smul_mem₀ (zero_lt_one.trans ht).ne']
  exact hs.smul_mem_of_zero_mem zero_mem hx hx₀ (inv_pos.2 <| zero_lt_one.trans ht) (inv_lt_one ht)
#align strict_convex.mem_smul_of_zero_mem StrictConvex.mem_smul_of_zero_mem

end AddCommGroup

end LinearOrderedField

/-!
#### Convex sets in an ordered space

Relates `convex` and `set.ord_connected`.
-/

section

variable [LinearOrderedField 𝕜] [TopologicalSpace 𝕜] [OrderTopology 𝕜] {s : Set 𝕜}

/- warning: strict_convex_iff_convex -> strictConvex_iff_convex is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u1} 𝕜] [_inst_3 : OrderTopology.{u1} 𝕜 _inst_2 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))] {s : Set.{u1} 𝕜}, Iff (StrictConvex.{u1, u1} 𝕜 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) s) (Convex.{u1, u1} 𝕜 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) s)
but is expected to have type
  forall {𝕜 : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u1} 𝕜] [_inst_3 : OrderTopology.{u1} 𝕜 _inst_2 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))] {s : Set.{u1} 𝕜}, Iff (StrictConvex.{u1, u1} 𝕜 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) (Algebra.toSMul.{u1, u1} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) (Algebra.id.{u1} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) s) (Convex.{u1, u1} 𝕜 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) (Algebra.toSMul.{u1, u1} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) (Algebra.id.{u1} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) s)
Case conversion may be inaccurate. Consider using '#align strict_convex_iff_convex strictConvex_iff_convexₓ'. -/
/-- A set in a linear ordered field is strictly convex if and only if it is convex. -/
@[simp]
theorem strictConvex_iff_convex : StrictConvex 𝕜 s ↔ Convex 𝕜 s :=
  ⟨StrictConvex.convex, fun hs => hs.OrdConnected.StrictConvex⟩
#align strict_convex_iff_convex strictConvex_iff_convex

/- warning: strict_convex_iff_ord_connected -> strictConvex_iff_ordConnected is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u1} 𝕜] [_inst_3 : OrderTopology.{u1} 𝕜 _inst_2 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))] {s : Set.{u1} 𝕜}, Iff (StrictConvex.{u1, u1} 𝕜 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) s) (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} 𝕜] [_inst_2 : TopologicalSpace.{u1} 𝕜] [_inst_3 : OrderTopology.{u1} 𝕜 _inst_2 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))] {s : Set.{u1} 𝕜}, Iff (StrictConvex.{u1, u1} 𝕜 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) (Algebra.toSMul.{u1, u1} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) (Algebra.id.{u1} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) s) (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 strict_convex_iff_ord_connected strictConvex_iff_ordConnectedₓ'. -/
theorem strictConvex_iff_ordConnected : StrictConvex 𝕜 s ↔ s.OrdConnected :=
  strictConvex_iff_convex.trans convex_iff_ordConnected
#align strict_convex_iff_ord_connected strictConvex_iff_ordConnected

/- warning: strict_convex.ord_connected -> StrictConvex.ordConnected is a dubious translation:
lean 3 declaration is
  forall {𝕜 : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : TopologicalSpace.{u1} 𝕜] [_inst_3 : OrderTopology.{u1} 𝕜 _inst_2 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))] {s : Set.{u1} 𝕜}, (StrictConvex.{u1, u1} 𝕜 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) s) -> (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} 𝕜] [_inst_2 : TopologicalSpace.{u1} 𝕜] [_inst_3 : OrderTopology.{u1} 𝕜 _inst_2 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))] {s : Set.{u1} 𝕜}, (StrictConvex.{u1, u1} 𝕜 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) (Algebra.toSMul.{u1, u1} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1))))) (Algebra.id.{u1} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_1)))))) s) -> (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 strict_convex.ord_connected StrictConvex.ordConnectedₓ'. -/
alias strictConvex_iff_ordConnected ↔ StrictConvex.ordConnected _
#align strict_convex.ord_connected StrictConvex.ordConnected

end