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}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(s : Set E)
:
theorem
subset_convexHull
(π : Type u_1)
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(s : Set E)
:
theorem
convex_convexHull
(π : Type u_1)
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(s : Set E)
:
Convex π ((convexHull π) s)
theorem
convexHull_eq_iInter
(π : Type u_1)
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(s : Set E)
:
theorem
mem_convexHull_iff
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s : Set E}
{x : E}
:
theorem
convexHull_min
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s t : Set E}
(ht : Convex π t)
:
theorem
convexHull_mono
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s t : Set E}
(hst : s β t)
:
theorem
convexHull_eq_self
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s : Set E}
:
theorem
Convex.convexHull_eq
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
:
@[simp]
theorem
convexHull_empty
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
:
@[simp]
theorem
convexHull_eq_empty
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s : Set E}
:
@[simp]
theorem
convexHull_nonempty_iff
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s : Set E}
:
theorem
Set.Nonempty.convexHull
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(x : E)
:
@[simp]
theorem
convexHull_eq_singleton
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s : Set E}
{x : E}
:
@[simp]
theorem
convexHull_zero
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
:
@[simp]
theorem
convexHull_eq_zero
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s : Set E}
:
@[simp]
theorem
convexHull_pair
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
[IsOrderedRing π]
(x y : E)
:
theorem
convexHull_convexHull_union_left
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(s t : Set E)
:
theorem
convexHull_convexHull_union_right
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(s t : Set E)
:
theorem
Convex.convex_remove_iff_notMem_convexHull_remove
{π : Type u_1}
{E : Type u_2}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[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}
[Semiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
{s t : Set E}
:
theorem
convexHull_smul
{π : Type u_1}
{E : Type u_2}
[CommSemiring π]
[PartialOrder π]
[AddCommMonoid E]
[Module π E]
(a : π)
(s : Set E)
:
theorem
AffineMap.image_convexHull
{π : Type u_1}
{E : Type u_2}
{F : Type u_3}
[Ring π]
[PartialOrder π]
[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}
[Ring π]
[PartialOrder π]
[AddCommGroup E]
[Module π E]
(s : Set E)
:
@[simp]
theorem
affineSpan_convexHull
{π : Type u_1}
{E : Type u_2}
[Ring π]
[PartialOrder π]
[AddCommGroup E]
[Module π E]
(s : Set E)
:
theorem
convexHull_neg
{π : Type u_1}
{E : Type u_2}
[Ring π]
[PartialOrder π]
[AddCommGroup E]
[Module π E]
(s : Set E)
:
theorem
convexHull_vadd
{π : Type u_1}
{E : Type u_2}
[Ring π]
[PartialOrder π]
[AddCommGroup E]
[Module π E]
(x : E)
(s : Set E)
: