Convex hull #
This file defines the convex hull of a set s
in a module. convexHull ๐ s
is the smallest convex
set containing s
. In order theory speak, this is a closure operator.
Implementation notes #
convexHull
is defined as a closure operator. This gives access to the ClosureOperator
API
while the impact on writing code is minimal as convexHull ๐ s
is automatically elaborated as
(convexHull ๐) s
.
def
convexHull
(๐ : Type u_1)
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
:
ClosureOperator (Set E)
The convex hull of a set s
is the minimal convex set that includes s
.
Equations
- convexHull ๐ = ClosureOperator.ofCompletePred (Convex ๐) โฏ
Instances For
@[simp]
theorem
convexHull_isClosed
(๐ : Type u_1)
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(s : Set E)
:
theorem
subset_convexHull
(๐ : Type u_1)
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(s : Set E)
:
theorem
convex_convexHull
(๐ : Type u_1)
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(s : Set E)
:
Convex ๐ ((convexHull ๐) s)
theorem
convexHull_eq_iInter
(๐ : Type u_1)
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(s : Set E)
:
theorem
mem_convexHull_iff
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
{x : E}
:
theorem
convexHull_min
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s t : Set E}
:
s โ t โ Convex ๐ t โ (convexHull ๐) s โ t
theorem
Convex.convexHull_subset_iff
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s t : Set E}
(ht : Convex ๐ t)
:
theorem
convexHull_mono
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s t : Set E}
(hst : s โ t)
:
theorem
convexHull_eq_self
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
:
theorem
Convex.convexHull_eq
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
:
Convex ๐ s โ (convexHull ๐) s = s
Alias of the reverse direction of convexHull_eq_self
.
@[simp]
theorem
convexHull_univ
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
:
@[simp]
theorem
convexHull_empty
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
:
@[simp]
theorem
convexHull_empty_iff
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
:
@[simp]
theorem
convexHull_nonempty_iff
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
:
theorem
Set.Nonempty.convexHull
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
:
s.Nonempty โ ((convexHull ๐) s).Nonempty
Alias of the reverse direction of convexHull_nonempty_iff
.
theorem
segment_subset_convexHull
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
{x y : E}
(hx : x โ s)
(hy : y โ s)
:
@[simp]
theorem
convexHull_singleton
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(x : E)
:
@[simp]
theorem
convexHull_zero
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
:
@[simp]
theorem
convexHull_pair
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(x y : E)
:
theorem
convexHull_convexHull_union_left
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(s t : Set E)
:
theorem
convexHull_convexHull_union_right
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(s t : Set E)
:
theorem
Convex.convex_remove_iff_not_mem_convexHull_remove
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s : Set E}
(hs : Convex ๐ s)
(x : E)
:
theorem
IsLinearMap.image_convexHull
{๐ : Type u_1}
{E : Type u_2}
{F : Type u_3}
[OrderedSemiring ๐]
[AddCommMonoid E]
[AddCommMonoid F]
[Module ๐ E]
[Module ๐ F]
{f : E โ F}
(hf : IsLinearMap ๐ f)
(s : Set E)
:
theorem
LinearMap.image_convexHull
{๐ : Type u_1}
{E : Type u_2}
{F : Type u_3}
[OrderedSemiring ๐]
[AddCommMonoid E]
[AddCommMonoid F]
[Module ๐ E]
[Module ๐ F]
(f : E โโ[๐] F)
(s : Set E)
:
theorem
convexHull_add_subset
{๐ : Type u_1}
{E : Type u_2}
[OrderedSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
{s t : Set E}
:
theorem
convexHull_smul
{๐ : Type u_1}
{E : Type u_2}
[OrderedCommSemiring ๐]
[AddCommMonoid E]
[Module ๐ E]
(a : ๐)
(s : Set E)
:
theorem
AffineMap.image_convexHull
{๐ : Type u_1}
{E : Type u_2}
{F : Type u_3}
[OrderedRing ๐]
[AddCommGroup E]
[AddCommGroup F]
[Module ๐ E]
[Module ๐ F]
(f : E โแต[๐] F)
(s : Set E)
:
theorem
convexHull_subset_affineSpan
{๐ : Type u_1}
{E : Type u_2}
[OrderedRing ๐]
[AddCommGroup E]
[Module ๐ E]
(s : Set E)
:
@[simp]
theorem
affineSpan_convexHull
{๐ : Type u_1}
{E : Type u_2}
[OrderedRing ๐]
[AddCommGroup E]
[Module ๐ E]
(s : Set E)
:
theorem
convexHull_neg
{๐ : Type u_1}
{E : Type u_2}
[OrderedRing ๐]
[AddCommGroup E]
[Module ๐ E]
(s : Set E)
:
theorem
convexHull_vadd
{๐ : Type u_1}
{E : Type u_2}
[OrderedRing ๐]
[AddCommGroup E]
[Module ๐ E]
(x : E)
(s : Set E)
: