File: Mathlib/Analysis/Convex/Strict.lean

full_name: StrictConvex
code: /-- 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 
goal: Prop

full_name: strictConvex_iff_openSegment_subset
code: theorem strictConvex_iff_openSegment_subset :
    StrictConvex 𝕜 s ↔ s.Pairwise fun x y => openSegment 𝕜 x y ⊆ interior s 
goal: StrictConvex 𝕜 s ↔ s.Pairwise fun x y => openSegment 𝕜 x y ⊆ interior s

full_name: StrictConvex.openSegment_subset
code: theorem StrictConvex.openSegment_subset (hs : StrictConvex 𝕜 s) (hx : x ∈ s) (hy : y ∈ s)
    (h : x ≠ y) : openSegment 𝕜 x y ⊆ interior s 
goal: openSegment 𝕜 x y ⊆ interior s

full_name: strictConvex_empty
code: theorem strictConvex_empty : StrictConvex 𝕜 (∅ : Set E) 
goal: StrictConvex 𝕜 ∅

full_name: strictConvex_univ
code: theorem strictConvex_univ : StrictConvex 𝕜 (univ : Set E) 
goal: StrictConvex 𝕜 Set.univ

full_name: StrictConvex.eq
code: protected nonrec 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 
goal: x = y

full_name: StrictConvex.inter
code: protected theorem StrictConvex.inter {t : Set E} (hs : StrictConvex 𝕜 s) (ht : StrictConvex 𝕜 t) :
    StrictConvex 𝕜 (s ∩ t) 
goal: StrictConvex 𝕜 (s ∩ t)

full_name: Directed.strictConvex_iUnion
code: theorem Directed.strictConvex_iUnion {ι : Sort*} {s : ι → Set E} (hdir : Directed (· ⊆ ·) s)
    (hs : ∀ ⦃i : ι⦄, StrictConvex 𝕜 (s i)) : StrictConvex 𝕜 (⋃ i, s i) 
goal: StrictConvex 𝕜 (⋃ i, s i)

full_name: DirectedOn.strictConvex_sUnion
code: theorem DirectedOn.strictConvex_sUnion {S : Set (Set E)} (hdir : DirectedOn (· ⊆ ·) S)
    (hS : ∀ s ∈ S, StrictConvex 𝕜 s) : StrictConvex 𝕜 (⋃₀ S) 
goal: StrictConvex 𝕜 (⋃₀ S)

full_name: StrictConvex.convex
code: protected theorem StrictConvex.convex (hs : StrictConvex 𝕜 s) : Convex 𝕜 s 
goal: Convex 𝕜 s

full_name: Convex.strictConvex_of_isOpen
code: /-- An open convex set is strictly convex. -/
protected theorem Convex.strictConvex_of_isOpen (h : IsOpen s) (hs : Convex 𝕜 s) :
    StrictConvex 𝕜 s 
goal: StrictConvex 𝕜 s

full_name: IsOpen.strictConvex_iff
code: theorem IsOpen.strictConvex_iff (h : IsOpen s) : StrictConvex 𝕜 s ↔ Convex 𝕜 s 
goal: StrictConvex 𝕜 s ↔ Convex 𝕜 s

full_name: strictConvex_singleton
code: theorem strictConvex_singleton (c : E) : StrictConvex 𝕜 ({c} : Set E) 
goal: StrictConvex 𝕜 {c}

full_name: Set.Subsingleton.strictConvex
code: theorem Set.Subsingleton.strictConvex (hs : s.Subsingleton) : StrictConvex 𝕜 s 
goal: StrictConvex 𝕜 s

full_name: StrictConvex.linear_image
code: 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) 
goal: StrictConvex 𝕜 (⇑f '' s)

full_name: StrictConvex.is_linear_image
code: theorem StrictConvex.is_linear_image (hs : StrictConvex 𝕜 s) {f : E → F} (h : IsLinearMap 𝕜 f)
    (hf : IsOpenMap f) : StrictConvex 𝕜 (f '' s) 
goal: StrictConvex 𝕜 (f '' s)

full_name: StrictConvex.linear_preimage
code: theorem StrictConvex.linear_preimage {s : Set F} (hs : StrictConvex 𝕜 s) (f : E →ₗ[𝕜] F)
    (hf : Continuous f) (hfinj : Injective f) : StrictConvex 𝕜 (s.preimage f) 
goal: StrictConvex 𝕜 (⇑f ⁻¹' s)

full_name: StrictConvex.is_linear_preimage
code: 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) 
goal: StrictConvex 𝕜 (f ⁻¹' s)

full_name: Set.OrdConnected.strictConvex
code: protected theorem Set.OrdConnected.strictConvex {s : Set β} (hs : OrdConnected s) :
    StrictConvex 𝕜 s 
goal: StrictConvex 𝕜 s

full_name: strictConvex_Iic
code: theorem strictConvex_Iic (r : β) : StrictConvex 𝕜 (Iic r) 
goal: StrictConvex 𝕜 (Set.Iic r)

full_name: strictConvex_Ici
code: theorem strictConvex_Ici (r : β) : StrictConvex 𝕜 (Ici r) 
goal: StrictConvex 𝕜 (Set.Ici r)

full_name: strictConvex_Iio
code: theorem strictConvex_Iio (r : β) : StrictConvex 𝕜 (Iio r) 
goal: StrictConvex 𝕜 (Set.Iio r)

full_name: strictConvex_Ioi
code: theorem strictConvex_Ioi (r : β) : StrictConvex 𝕜 (Ioi r) 
goal: StrictConvex 𝕜 (Set.Ioi r)

full_name: strictConvex_Icc
code: theorem strictConvex_Icc (r s : β) : StrictConvex 𝕜 (Icc r s) 
goal: StrictConvex 𝕜 (Set.Icc r s)

full_name: strictConvex_Ioo
code: theorem strictConvex_Ioo (r s : β) : StrictConvex 𝕜 (Ioo r s) 
goal: StrictConvex 𝕜 (Set.Ioo r s)

full_name: strictConvex_Ico
code: theorem strictConvex_Ico (r s : β) : StrictConvex 𝕜 (Ico r s) 
goal: StrictConvex 𝕜 (Set.Ico r s)

full_name: strictConvex_Ioc
code: theorem strictConvex_Ioc (r s : β) : StrictConvex 𝕜 (Ioc r s) 
goal: StrictConvex 𝕜 (Set.Ioc r s)

full_name: strictConvex_uIcc
code: theorem strictConvex_uIcc (r s : β) : StrictConvex 𝕜 (uIcc r s) 
goal: StrictConvex 𝕜 (Set.uIcc r s)

full_name: strictConvex_uIoc
code: theorem strictConvex_uIoc (r s : β) : StrictConvex 𝕜 (uIoc r s) 
goal: StrictConvex 𝕜 (Ι r s)

full_name: StrictConvex.preimage_add_right
code: /-- 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) 
goal: StrictConvex 𝕜 ((fun x => z + x) ⁻¹' s)

full_name: StrictConvex.preimage_add_left
code: /-- 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) 
goal: StrictConvex 𝕜 ((fun x => x + z) ⁻¹' s)

full_name: StrictConvex.add
code: theorem StrictConvex.add (hs : StrictConvex 𝕜 s) (ht : StrictConvex 𝕜 t) :
    StrictConvex 𝕜 (s + t) 
goal: StrictConvex 𝕜 (s + t)

full_name: StrictConvex.add_left
code: theorem StrictConvex.add_left (hs : StrictConvex 𝕜 s) (z : E) :
    StrictConvex 𝕜 ((fun x => z + x) '' s) 
goal: StrictConvex 𝕜 ((fun x => z + x) '' s)

full_name: StrictConvex.add_right
code: theorem StrictConvex.add_right (hs : StrictConvex 𝕜 s) (z : E) :
    StrictConvex 𝕜 ((fun x => x + z) '' s) 
goal: StrictConvex 𝕜 ((fun x => x + z) '' s)

full_name: StrictConvex.vadd
code: /-- The translation of a strictly convex set is also strictly convex. -/
theorem StrictConvex.vadd (hs : StrictConvex 𝕜 s) (x : E) : StrictConvex 𝕜 (x +ᵥ s) 
goal: StrictConvex 𝕜 (x +ᵥ s)

full_name: StrictConvex.smul
code: theorem StrictConvex.smul (hs : StrictConvex 𝕜 s) (c : 𝕝) : StrictConvex 𝕜 (c • s) 
goal: StrictConvex 𝕜 (c • s)

full_name: StrictConvex.affinity
code: theorem StrictConvex.affinity [ContinuousAdd E] (hs : StrictConvex 𝕜 s) (z : E) (c : 𝕝) :
    StrictConvex 𝕜 (z +ᵥ c • s) 
goal: StrictConvex 𝕜 (z +ᵥ c • s)

full_name: StrictConvex.preimage_smul
code: theorem StrictConvex.preimage_smul (hs : StrictConvex 𝕜 s) (c : 𝕜) :
    StrictConvex 𝕜 ((fun z => c • z) ⁻¹' s) 
goal: StrictConvex 𝕜 ((fun z => c • z) ⁻¹' s)

full_name: StrictConvex.eq_of_openSegment_subset_frontier
code: 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 
goal: x = y

full_name: StrictConvex.add_smul_mem
code: 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 
goal: x + t • y ∈ interior s

full_name: StrictConvex.smul_mem_of_zero_mem
code: 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 
goal: t • x ∈ interior s

full_name: StrictConvex.add_smul_sub_mem
code: 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 
goal: x + t • (y - x) ∈ interior s

full_name: StrictConvex.affine_preimage
code: /-- 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) 
goal: StrictConvex 𝕜 (⇑f ⁻¹' s)

full_name: StrictConvex.affine_image
code: /-- 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) 
goal: StrictConvex 𝕜 (⇑f '' s)

full_name: StrictConvex.neg
code: theorem StrictConvex.neg (hs : StrictConvex 𝕜 s) : StrictConvex 𝕜 (-s) 
goal: StrictConvex 𝕜 (-s)

full_name: StrictConvex.sub
code: theorem StrictConvex.sub (hs : StrictConvex 𝕜 s) (ht : StrictConvex 𝕜 t) : StrictConvex 𝕜 (s - t) 
goal: StrictConvex 𝕜 (s - t)

full_name: strictConvex_iff_div
code: /-- 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 
goal: StrictConvex 𝕜 s ↔ s.Pairwise fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → (a / (a + b)) • x + (b / (a + b)) • y ∈ interior s

full_name: StrictConvex.mem_smul_of_zero_mem
code: 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 
goal: x ∈ t • interior s

full_name: strictConvex_iff_convex
code: /-- 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 
goal: StrictConvex 𝕜 s ↔ Convex 𝕜 s

full_name: strictConvex_iff_ordConnected
code: theorem strictConvex_iff_ordConnected : StrictConvex 𝕜 s ↔ s.OrdConnected 
goal: StrictConvex 𝕜 s ↔ s.OrdConnected