Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chapters.Chap02.section06_part7

theorem lift_mem_ri_cone_iff (n : ) (C : Set (EuclideanSpace (Fin n))) (hC : Convex C) (hCne : C.Nonempty) :
have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have first := fun (v : EuclideanSpace (Fin (1 + n))) => coords v 0; have tail := fun (v : EuclideanSpace (Fin (1 + n))) => (EuclideanSpace.equiv (Fin n) ).symm fun (i : Fin n) => coords v (Fin.natAdd 1 i); have S := {v : EuclideanSpace (Fin (1 + n)) | first v = 1 tail v C}; have K := (ConvexCone.hull S); have y0 := (EuclideanSpace.equiv (Fin 1) ).symm fun (x : Fin 1) => 1; have append := fun (y : EuclideanSpace (Fin 1)) (z : EuclideanSpace (Fin n)) => (EuclideanSpace.equiv (Fin (1 + n)) ).symm ((Fin.appendIsometry 1 n) ((EuclideanSpace.equiv (Fin 1) ) y, (EuclideanSpace.equiv (Fin n) ) z)); have lift := fun (x : EuclideanSpace (Fin n)) => append y0 x; ∀ (x : EuclideanSpace (Fin n)), x euclideanRelativeInterior n C lift x euclideanRelativeInterior (1 + n) K

Lifting a point into the cone over C preserves relative interior membership.

theorem convex_sum_finset_set_euclidean {n : } {ι : Type u_1} (s : Finset ι) (A : ιSet (EuclideanSpace (Fin n))) (hA : is, Convex (A i)) :
Convex (s.sum A)

A finite Minkowski sum of convex sets in Euclidean space is convex.

theorem choose_index_family_of_mem_iUnion_euclidean {n : } {ι : Type u_1} {I : Type u_2} {C : ISet (EuclideanSpace (Fin n))} {x : ιEuclideanSpace (Fin n)} (hx : ∀ (i : ι), x i ⋃ (j : I), C j) :
∃ (f : ιI), ∀ (i : ι), x i C (f i)

Choose indices witnessing membership in a union of sets (Euclidean space).

theorem ri_sum_cones_eq_sum_ri (n m : ) (K : Fin m.succSet (EuclideanSpace (Fin n))) (hK : ∀ (i : Fin m.succ), Convex (K i)) :
euclideanRelativeInterior n (∑ i : Fin m.succ, K i) = i : Fin m.succ, euclideanRelativeInterior n (K i)

Relative interior of a finite Minkowski sum of convex sets.

theorem eq_of_first_tail_eq (n : ) :
have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have first := fun (v : EuclideanSpace (Fin (1 + n))) => coords v 0; have tail := fun (v : EuclideanSpace (Fin (1 + n))) => (EuclideanSpace.equiv (Fin n) ).symm fun (i : Fin n) => coords v (Fin.natAdd 1 i); ∀ (u v : EuclideanSpace (Fin (1 + n))), first u = first vtail u = tail vu = v

A vector in R^{n+1} is determined by its first and tail coordinates.

theorem first_smul (n : ) :
have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have first := fun (v : EuclideanSpace (Fin (1 + n))) => coords v 0; ∀ (a : ) (v : EuclideanSpace (Fin (1 + n))), first (a v) = a * first v

The first coordinate scales linearly under scalar multiplication.

theorem tail_smul (n : ) :
have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have tail := fun (v : EuclideanSpace (Fin (1 + n))) => (EuclideanSpace.equiv (Fin n) ).symm fun (i : Fin n) => coords v (Fin.natAdd 1 i); ∀ (a : ) (v : EuclideanSpace (Fin (1 + n))), tail (a v) = a tail v

The tail map scales linearly under scalar multiplication.

theorem dist_lift_eq (n : ) :
have y0 := (EuclideanSpace.equiv (Fin 1) ).symm fun (x : Fin 1) => 1; have append := fun (y : EuclideanSpace (Fin 1)) (z : EuclideanSpace (Fin n)) => (EuclideanSpace.equiv (Fin (1 + n)) ).symm ((Fin.appendIsometry 1 n) ((EuclideanSpace.equiv (Fin 1) ) y, (EuclideanSpace.equiv (Fin n) ) z)); have lift := fun (x : EuclideanSpace (Fin n)) => append y0 x; ∀ (x y : EuclideanSpace (Fin n)), dist (lift x) (lift y) = dist x y

The lift map preserves distances.

theorem sum_smul_lift_eq_lift_sum (n m : ) (w : Fin m.succ) (x_i : Fin m.succEuclideanSpace (Fin n)) (hsum : i : Fin m.succ, w i = 1) :
have y0 := (EuclideanSpace.equiv (Fin 1) ).symm fun (x : Fin 1) => 1; have append := fun (y : EuclideanSpace (Fin 1)) (z : EuclideanSpace (Fin n)) => (EuclideanSpace.equiv (Fin (1 + n)) ).symm ((Fin.appendIsometry 1 n) ((EuclideanSpace.equiv (Fin 1) ) y, (EuclideanSpace.equiv (Fin n) ) z)); have lift := fun (x : EuclideanSpace (Fin n)) => append y0 x; i : Fin m.succ, w i lift (x_i i) = lift (∑ i : Fin m.succ, w i x_i i)

Weighted sums of lifts with total weight 1 collapse to a single lift.

theorem weighted_sum_perturb_bound (n m : ) (w : Fin m.succ) (x_i : Fin m.succEuclideanSpace (Fin n)) {δ : } ( : 0 δ) :
have c := 1 + m.succ * δ; have w' := fun (i : Fin m.succ) => (w i + δ) / c; i : Fin m.succ, w' i x_i i - i : Fin m.succ, w i x_i i δ / c * (i : Fin m.succ, x_i i + m.succ * i : Fin m.succ, w i x_i i)

A norm bound for the perturbation of weights in a weighted sum.

theorem mem_sum_ri_cones_iff_weights (n m : ) (C : Fin m.succSet (EuclideanSpace (Fin n))) (hCne : ∀ (i : Fin m.succ), (C i).Nonempty) (hCconv : ∀ (i : Fin m.succ), Convex (C i)) :
have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have first := fun (v : EuclideanSpace (Fin (1 + n))) => coords v 0; have tail := fun (v : EuclideanSpace (Fin (1 + n))) => (EuclideanSpace.equiv (Fin n) ).symm fun (i : Fin n) => coords v (Fin.natAdd 1 i); have S := fun (i : Fin m.succ) => {v : EuclideanSpace (Fin (1 + n)) | first v = 1 tail v C i}; have K := fun (i : Fin m.succ) => (ConvexCone.hull (S i)); ∀ (v : EuclideanSpace (Fin (1 + n))), first v = 1 → (v i : Fin m.succ, euclideanRelativeInterior (1 + n) (K i) ∃ (w : Fin m.succ) (x_i : Fin m.succEuclideanSpace (Fin n)), (∀ (i : Fin m.succ), 0 < w i) i : Fin m.succ, w i = 1 (∀ (i : Fin m.succ), x_i i euclideanRelativeInterior n (C i)) tail v = i : Fin m.succ, w i x_i i)

Membership in the sum of the relative interiors of the lifted cones gives positive weights.

theorem convexHull_iUnion_exists_weights_points (n m : ) (C : Fin m.succSet (EuclideanSpace (Fin n))) (hCne : ∀ (i : Fin m.succ), (C i).Nonempty) (hCconv : ∀ (i : Fin m.succ), Convex (C i)) (x : EuclideanSpace (Fin n)) :
x (convexHull ) (⋃ (i : Fin m.succ), C i)∃ (w : Fin m.succ) (x_i : Fin m.succEuclideanSpace (Fin n)), (∀ (i : Fin m.succ), 0 w i) i : Fin m.succ, w i = 1 (∀ (i : Fin m.succ), x_i i C i) x = i : Fin m.succ, w i x_i i

A point in the convex hull of a finite union of convex sets admits one point per set.