# mathlib3documentation

analysis.convex.exposed

# Exposed sets #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file defines exposed sets and exposed points for sets in a real vector space.

An exposed subset of A is a subset of A that is the set of all maximal points of a functional (a continuous linear map E → 𝕜) over A. By convention, ∅ is an exposed subset of all sets. This allows for better functoriality of the definition (the intersection of two exposed subsets is exposed, faces of a polytope form a bounded lattice). This is an analytic notion of "being on the side of". It is stronger than being extreme (see is_exposed.is_extreme), but weaker (for exposed points) than being a vertex.

An exposed set of A is sometimes called a "face of A", but we decided to reserve this terminology to the more specific notion of a face of a polytope (sometimes hopefully soon out on mathlib!).

## Main declarations #

• is_exposed 𝕜 A B: States that B is an exposed set of A (in the literature, A is often implicit).
• is_exposed.is_extreme: An exposed set is also extreme.

## References #

See chapter 8 of Barry Simon, Convexity

## TODO #

Define intrinsic frontier/interior and prove the lemmas related to exposed sets and points.

Generalise to Locally Convex Topological Vector Spaces™

More not-yet-PRed stuff is available on the branch sperner_again.

def is_exposed (𝕜 : Type u_1) {E : Type u_2} [semiring 𝕜] [preorder 𝕜] [ E] (A B : set E) :
Prop

A set B is exposed with respect to A iff it maximizes some functional over A (and contains all points maximizing it). Written is_exposed 𝕜 A B.

Equations
def continuous_linear_map.to_exposed {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] (l : E →L[𝕜] 𝕜) (A : set E) :
set E

A useful way to build exposed sets from intersecting A with halfspaces (modelled by an inequality with a functional).

Equations
theorem continuous_linear_map.to_exposed.is_exposed {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {l : E →L[𝕜] 𝕜} {A : set E} :
A (l.to_exposed A)
theorem is_exposed_empty {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A : set E} :
A
@[protected]
theorem is_exposed.subset {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B : set E} (hAB : A B) :
B A
@[protected, refl]
theorem is_exposed.refl {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] (A : set E) :
A A
@[protected]
theorem is_exposed.antisymm {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B : set E} (hB : A B) (hA : B A) :
A = B
@[protected]
theorem is_exposed.mono {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B C : set E} (hC : A C) (hBA : B A) (hCB : C B) :
B C
theorem is_exposed.eq_inter_halfspace' {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B : set E} (hAB : A B) (hB : B.nonempty) :
(l : E →L[𝕜] 𝕜) (a : 𝕜), B = {x ∈ A | a l x}

If B is a nonempty exposed subset of A, then B is the intersection of A with some closed halfspace. The converse is not true. It would require that the corresponding open halfspace doesn't intersect A.

theorem is_exposed.eq_inter_halfspace {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] [nontrivial 𝕜] {A B : set E} (hAB : A B) :
(l : E →L[𝕜] 𝕜) (a : 𝕜), B = {x ∈ A | a l x}

For nontrivial 𝕜, if B is an exposed subset of A, then B is the intersection of A with some closed halfspace. The converse is not true. It would require that the corresponding open halfspace doesn't intersect A.

@[protected]
theorem is_exposed.inter {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B C : set E} (hB : A B) (hC : A C) :
A (B C)
theorem is_exposed.sInter {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A : set E} {F : finset (set E)} (hF : F.nonempty) (hAF : (B : set E), B F A B) :
A (⋂₀ F)
theorem is_exposed.inter_left {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B C : set E} (hC : A C) (hCB : C B) :
(A B) C
theorem is_exposed.inter_right {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B C : set E} (hC : B C) (hCA : C A) :
(A B) C
@[protected]
theorem is_exposed.is_closed {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A B : set E} (hAB : A B) (hA : is_closed A) :
@[protected]
theorem is_exposed.is_compact {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] [t2_space E] {A B : set E} (hAB : A B) (hA : is_compact A) :
def set.exposed_points (𝕜 : Type u_1) {E : Type u_2} [ordered_ring 𝕜] [ E] (A : set E) :
set E

A point is exposed with respect to A iff there exists an hyperplane whose intersection with A is exactly that point.

Equations
theorem exposed_point_def {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A : set E} {x : E} :
x x A (l : E →L[𝕜] 𝕜), (y : E), y A l y l x (l x l y y = x)
theorem exposed_points_subset {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A : set E} :
A
@[simp]
theorem exposed_points_empty {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] :
theorem mem_exposed_points_iff_exposed_singleton {𝕜 : Type u_1} {E : Type u_2} [ordered_ring 𝕜] [ E] {A : set E} {x : E} :
x A {x}

Exposed points exactly correspond to exposed singletons.

@[protected]
theorem is_exposed.convex {𝕜 : Type u_1} {E : Type u_2} [ E] {A B : set E} (hAB : A B) (hA : A) :
B
@[protected]
theorem is_exposed.is_extreme {𝕜 : Type u_1} {E : Type u_2} [ E] {A B : set E} (hAB : A B) :
A B
theorem exposed_points_subset_extreme_points {𝕜 : Type u_1} {E : Type u_2} [ E] {A : set E} :