# mathlibdocumentation

analysis.convex.exposed

# Exposed sets #

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} [normed_space π 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} [normed_space π 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} [normed_space π E] {l : E βL[π] π} {A : set E} :
is_exposed π A (l.to_exposed A)
theorem is_exposed_empty {π : Type u_1} {E : Type u_2} [normed_space π E] {A : set E} :
is_exposed π A β
@[protected]
theorem is_exposed.subset {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} (hAB : is_exposed π A B) :
B β A
@[protected, refl]
theorem is_exposed.refl {π : Type u_1} {E : Type u_2} [normed_space π E] (A : set E) :
is_exposed π A A
@[protected]
theorem is_exposed.antisymm {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} (hB : is_exposed π A B) (hA : is_exposed π B A) :
A = B
@[protected]
theorem is_exposed.mono {π : Type u_1} {E : Type u_2} [normed_space π E] {A B C : set E} (hC : is_exposed π A C) (hBA : B β A) (hCB : C β B) :
is_exposed π B C
theorem is_exposed.eq_inter_halfspace {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} (hAB : is_exposed π A B) :
β (l : E βL[π] π) (a : π), B = {x β A | a β€ βl x}

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} [normed_space π E] {A B C : set E} (hB : is_exposed π A B) (hC : is_exposed π A C) :
is_exposed π A (B β© C)
theorem is_exposed.sInter {π : Type u_1} {E : Type u_2} [normed_space π E] {A : set E} {F : finset (set E)} (hF : F.nonempty) (hAF : β (B : set E), B β F β is_exposed π A B) :
theorem is_exposed.inter_left {π : Type u_1} {E : Type u_2} [normed_space π E] {A B C : set E} (hC : is_exposed π A C) (hCB : C β B) :
is_exposed π (A β© B) C
theorem is_exposed.inter_right {π : Type u_1} {E : Type u_2} [normed_space π E] {A B C : set E} (hC : is_exposed π B C) (hCA : C β A) :
is_exposed π (A β© B) C
@[protected]
theorem is_exposed.is_extreme {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} (hAB : is_exposed π A B) :
is_extreme π A B
@[protected]
theorem is_exposed.convex {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} (hAB : is_exposed π A B) (hA : convex π A) :
convex π B
@[protected]
theorem is_exposed.is_closed {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} [order_closed_topology π] (hAB : is_exposed π A B) (hA : is_closed A) :
@[protected]
theorem is_exposed.is_compact {π : Type u_1} {E : Type u_2} [normed_space π E] {A B : set E} [order_closed_topology π] (hAB : is_exposed π A B) (hA : is_compact A) :
def set.exposed_points (π : Type u_1) {E : Type u_2} [normed_space π 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} [normed_space π E] {A : set E} {x : E} :
x β A β 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} [normed_space π E] {A : set E} :
A β A
@[simp]
theorem exposed_points_empty {π : Type u_1} {E : Type u_2} [normed_space π E] :
theorem mem_exposed_points_iff_exposed_singleton {π : Type u_1} {E : Type u_2} [normed_space π E] {A : set E} {x : E} :
x β A β is_exposed π A {x}

Exposed points exactly correspond to exposed singletons.

theorem exposed_points_subset_extreme_points {π : Type u_1} {E : Type u_2} [normed_space π E] {A : set E} :
A β A