7.2. The Regular Triangulation
Fix a height function w : S \to \mathbb R. Call an affine function \ell on
\mathbb R^k (i.e. \ell = \varphi + b with \varphi linear, b \in \mathbb R)
feasible if \ell(v) \le w(v) for all v \in S. The contact set of a
feasible \ell is \sigma_\ell := \{v \in S : \ell(v) = w(v)\}. A subset
\sigma \subseteq S is a contact set if it equals \sigma_\ell for some feasible
\ell. The faces of the regular triangulation are the nonempty contact sets.
open Set Geometry
open scoped Topology BigOperators
namespace Submission
namespace FamiliesOfMapsB01Regular
variable {k : ℕ}
/-- A *contact set* of the height function `w` on `S`: the vertices on which some
supporting affine function `ℓ = φ + b ≤ w` touches `w`. -/
def IsContactSet (w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
(σ : Finset (Fin k → ℝ)) : Prop :=
∃ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) ∧ (∀ v : (Fin k → ℝ), v ∈ σ ↔ (v ∈ S ∧ φ v + b = w v))
/-- A contact set is a subset of `S`. -/
lemma IsContactSet.subset_S {w : (Fin k → ℝ) → ℝ} {S σ : Finset (Fin k → ℝ)}
(h : IsContactSet w S σ) : σ ⊆ S := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)h:IsContactSet w S σ⊢ σ ⊆ S
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝleft✝:∀ v ∈ S, φ v + b ≤ w vhσ:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w v⊢ σ ⊆ S
intro v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝleft✝:∀ v ∈ S, φ v + b ≤ w vhσ:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vv:Fin k → ℝhv:v ∈ σ⊢ v ∈ S
All goals completed! 🐙
The Lean development takes the five steps (a)–(e) of the informal proof in a slightly different order — gluing first, then tilting, genericity, covering, and assembly — so we follow the code, keeping the informal lettering.
(7.2.c) Gluing
(7.2.c) Gluing. For contact sets \sigma (of \ell_1) and \tau (of
\ell_2),
\operatorname{conv}(\sigma) \cap \operatorname{conv}(\tau) \;\subseteq\; \operatorname{conv}(\sigma \cap \tau).
Let x be in the intersection; write x = \sum_{v \in \sigma} a_v v = \sum_{v\in\tau} b_v v as convex combinations. Consider the average
\ell := \tfrac12(\ell_1 + \ell_2), feasible, with slack
g := w - \ell \ge 0 on S, vanishing exactly on \sigma \cap \tau (a point where
g=0 must have \ell_1 = w and \ell_2 = w). Integrating the slack against the
two weight systems: since \ell_1 = w on \sigma,
\sum_{v\in\sigma} a_v\, g(v) = \sum_{v \in \sigma} a_v \bigl(\ell_1(v) - \ell(v)\bigr) = \tfrac12\bigl(\ell_1(x) - \ell_2(x)\bigr),
using that affine functions pass through convex combinations; symmetrically
\sum_{v\in\tau} b_v\,g(v) = \tfrac12(\ell_2(x) - \ell_1(x)). Both left-hand sides
are sums of nonnegative terms and they are negatives of each other, so both vanish;
hence a_v\,g(v) = 0 for every v \in \sigma, i.e. the weights a are supported on
\{g = 0\} = \sigma\cap\tau. Thus x \in \operatorname{conv}(\sigma\cap\tau).
/-
**Intersection of two contact sets glues nicely.** For contact sets `σ` (of `ℓ₁`) and
`τ` (of `ℓ₂`), a point in `convexHull σ ∩ convexHull τ` already lies in
`convexHull (σ ∩ τ)`. Proof: the average `ℓ = (ℓ₁+ℓ₂)/2 ≤ w` touches `w` exactly on
`σ ∩ τ`; the slack `g = w - ℓ ≥ 0` integrates to `(ℓ₁(x)-ℓ₂(x))/2` against the `σ`-weights
and to its negative against the `τ`-weights, forcing both to vanish and the `σ`-weights to
be supported on `σ ∩ τ`.
-/
set_option maxHeartbeats 4000000 in
theorem IsContactSet_inter
(w : (Fin k → ℝ) → ℝ) (S σ τ : Finset (Fin k → ℝ))
(hσ : IsContactSet w S σ) (hτ : IsContactSet w S τ) :
convexHull ℝ (σ : Set (Fin k → ℝ)) ∩ convexHull ℝ (τ : Set (Fin k → ℝ))
⊆ convexHull ℝ ((σ ∩ τ : Finset (Fin k → ℝ)) : Set (Fin k → ℝ)) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τ⊢ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ ⊆ (convexHull ℝ) ↑(σ ∩ τ)
intro x k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ⊢ x ∈ (convexHull ℝ) ↑(σ ∩ τ);
obtain ⟨a, ha⟩ : ∃ a : (Fin k → ℝ) → ℝ, (∑ v ∈ σ, a v = 1) ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • v := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ⊢ ∃ a, ∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • v
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τx:Fin k → ℝhx:(∃ ι t w, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ ∃ x_1, (∀ i ∈ t, x_1 i ∈ σ) ∧ t.centerMass w x_1 = x) ∧
∃ ι t w, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ ∃ x_1, (∀ i ∈ t, x_1 i ∈ τ) ∧ t.centerMass w x_1 = x⊢ ∃ a, ∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • v;
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ ∃ a, ∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ t.centerMass w x = ∑ v ∈ σ, a v • v;
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ ∑ v ∈ σ, (fun v => ∑ i ∈ t with x i = v, w i) v = 1k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ ∀ v ∈ σ, 0 ≤ (fun v => ∑ i ∈ t with x i = v, w i) vk:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ t.centerMass w x = ∑ v ∈ σ, (fun v => ∑ i ∈ t with x i = v, w i) v • v k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ ∑ v ∈ σ, (fun v => ∑ i ∈ t with x i = v, w i) v = 1k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ ∀ v ∈ σ, 0 ≤ (fun v => ∑ i ∈ t with x i = v, w i) vk:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧ ∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ t_1.centerMass w_1 x_1 = t.centerMass w x⊢ t.centerMass w x = ∑ v ∈ σ, (fun v => ∑ i ∈ t with x i = v, w i) v • v k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∑ i ∈ t, w i • x i = ∑ x_1 ∈ σ, (∑ i ∈ t with x i = x_1, w i) • x_1;
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∑ x_1 ∈ σ, ∑ i ∈ t with x i = x_1, w i = 1 k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∀ i ∈ t, x i ∈ σ ; All goals completed! 🐙;
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∀ v ∈ σ, 0 ≤ ∑ i ∈ t with x i = v, w i All goals completed! 🐙;
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∑ i ∈ t, w i • x i = ∑ x_1 ∈ σ, (∑ i ∈ t with x i = x_1, w i) • x_1 k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∑ i ∈ t, w i • x i = ∑ x_1 ∈ σ, ∑ x_2 ∈ t, if x x_2 = x_1 then w x_2 • x_1 else 0;
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τι:Typet:Finset ιw:ι → ℝhw₁:∀ i ∈ t, 0 ≤ w ihw₂:∑ i ∈ t, w i = 1x:ι → Fin k → ℝhx₁:∀ i ∈ t, x i ∈ σright✝:∃ ι_1 t_1 w_1,
(∀ i ∈ t_1, 0 ≤ w_1 i) ∧
∑ i ∈ t_1, w_1 i = 1 ∧
∃ x_1, (∀ i ∈ t_1, x_1 i ∈ τ) ∧ (∑ i ∈ t_1, w_1 i)⁻¹ • ∑ i ∈ t_1, w_1 i • x_1 i = ∑ i ∈ t, w i • x i⊢ ∀ x_1 ∈ t, w x_1 • x x_1 = ∑ x_2 ∈ σ, if x x_1 = x_2 then w x_1 • x_2 else 0 ; All goals completed! 🐙;
obtain ⟨b, hb⟩ : ∃ b : (Fin k → ℝ) → ℝ, (∑ v ∈ τ, b v = 1) ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • v := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • v⊢ ∃ b, ∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • v
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vthis:x ∈ (convexHull ℝ) ↑τ⊢ ∃ b, ∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vthis:∃ ι x_1 w z, (∀ (i : ι), 0 ≤ w i) ∧ ∑ i, w i = 1 ∧ (∀ (i : ι), z i ∈ ↑τ) ∧ ∑ i, w i • z i = x⊢ ∃ b, ∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • v;
k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∃ b, ∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ ∑ i, w i • z i = ∑ v ∈ τ, b v • v;
k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ v ∈ τ, (fun v => ∑ i with z i = v, w i) v = 1k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∀ v ∈ τ, 0 ≤ (fun v => ∑ i with z i = v, w i) vk:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ i, w i • z i = ∑ v ∈ τ, (fun v => ∑ i with z i = v, w i) v • v k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ v ∈ τ, (fun v => ∑ i with z i = v, w i) v = 1k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∀ v ∈ τ, 0 ≤ (fun v => ∑ i with z i = v, w i) vk:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ ↑τhx:∑ i, w i • z i ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ i, w i • z i = ∑ v ∈ τ, (fun v => ∑ i with z i = v, w i) v • v k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ v ∈ σ, a v • v = ∑ x ∈ τ, (∑ a, if z a = x then w a else 0) • x;
k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ (∑ x ∈ τ, ∑ a, if z a = x then w a else 0) = 1 k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ (∑ y, ∑ x ∈ τ, if z y = x then w y else 0) = ∑ i, w i ; All goals completed! 🐙;
k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∀ v ∈ τ, 0 ≤ ∑ a, if z a = v then w a else 0 exact fun v hv => Finset.sum_nonneg fun i _ => k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • vv:Fin k → ℝhv:v ∈ τi:ιx✝:i ∈ Finset.univ⊢ 0 ≤ if z i = v then w i else 0 k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • vv:Fin k → ℝhv:v ∈ τi:ιx✝:i ∈ Finset.univh✝:z i = v⊢ 0 ≤ w ik:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • vv:Fin k → ℝhv:v ∈ τi:ιx✝:i ∈ Finset.univh✝:¬z i = v⊢ 0 ≤ 0 k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • vv:Fin k → ℝhv:v ∈ τi:ιx✝:i ∈ Finset.univh✝:z i = v⊢ 0 ≤ w ik:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • vv:Fin k → ℝhv:v ∈ τi:ιx✝:i ∈ Finset.univh✝:¬z i = v⊢ 0 ≤ 0 All goals completed! 🐙 ;
k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ v ∈ σ, a v • v = ∑ x ∈ τ, (∑ a, if z a = x then w a else 0) • x k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • v⊢ ∑ i, w i • z i = ∑ x, if z x ∈ τ then w x • z x else 0;
exact Finset.sum_congr rfl fun i hi => k:ℕw✝¹:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τa:(Fin k → ℝ) → ℝι:Typew✝:Fintype ιw:ι → ℝz:ι → Fin k → ℝhw:∀ (i : ι), 0 ≤ w ihw':∑ i, w i = 1hz:∀ (i : ι), z i ∈ τhx:∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑σ ∧ ∑ v ∈ σ, a v • v ∈ (convexHull ℝ) ↑τha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ ∑ i, w i • z i = ∑ v ∈ σ, a v • vi:ιhi:i ∈ Finset.univ⊢ w i • z i = if z i ∈ τ then w i • z i else 0 All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hτ:IsContactSet w S τx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w v⊢ x ∈ (convexHull ℝ) ↑(σ ∩ τ)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w v⊢ x ∈ (convexHull ℝ) ↑(σ ∩ τ);
-- Compute the σ-slack and τ-slack.
have hσ_slack : ∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τ⊢ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ ⊆ (convexHull ℝ) ↑(σ ∩ τ)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w v⊢ ∑ x ∈ σ, w x * a x - ∑ x ∈ σ, a x * (2⁻¹ * (φ₁ x + b₁ + φ₂ x + b₂)) =
2⁻¹ * (∑ x ∈ σ, a x * φ₁ x + b₁) - ∑ x ∈ σ, a x * (2⁻¹ * φ₂ x) - b₂ * 2⁻¹;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w v⊢ ∑ v ∈ σ, (φ₁ v + b₁) * a v - ∑ x ∈ σ, a x * (2⁻¹ * (φ₁ x + b₁ + φ₂ x + b₂)) =
2⁻¹ * (∑ x ∈ σ, a x * φ₁ x + b₁) - ∑ x ∈ σ, a x * (2⁻¹ * φ₂ x) - b₂ * 2⁻¹ ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w v⊢ ∑ x ∈ σ, a x * φ₁ x + ∑ x ∈ σ, b₁ * a x -
(∑ x ∈ σ, a x * (1 / 2 * φ₁ x) + ∑ x ∈ σ, b₁ * (a x * (1 / 2)) + ∑ x ∈ σ, a x * (1 / 2 * φ₂ x) +
∑ x ∈ σ, b₂ * (a x * (1 / 2))) =
∑ x ∈ σ, a x * (1 / 2 * φ₁ x) + b₁ * (1 / 2) - ∑ x ∈ σ, a x * (1 / 2 * φ₂ x) - b₂ * (1 / 2) ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w v⊢ ∑ x ∈ σ, a x * φ₁ x + ∑ x ∈ σ, b₁ * a x - ∑ x ∈ σ, a x * φ₁ x * (1 / 2) - ∑ x ∈ σ, b₁ * a x * (1 / 2) -
∑ x ∈ σ, a x * φ₂ x * (1 / 2) -
∑ x ∈ σ, b₂ * a x * (1 / 2) =
b₁ * (1 / 2) + ∑ x ∈ σ, a x * φ₁ x * (1 / 2) - ∑ x ∈ σ, a x * φ₂ x * (1 / 2) + b₂ * (-1 / 2);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w v⊢ ∑ x ∈ σ, a x * φ₁ x + b₁ - (∑ x ∈ σ, a x * φ₁ x) * (1 / 2) - b₁ * (1 / 2) - (∑ i ∈ σ, a i * φ₂ i) * (1 / 2) -
b₂ * (1 / 2) =
b₁ * (1 / 2) + (∑ x ∈ σ, a x * φ₁ x) * (1 / 2) - (∑ i ∈ σ, a i * φ₂ i) * (1 / 2) + -(b₂ * (1 / 2)) ; All goals completed! 🐙
have hτ_slack : ∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τ⊢ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ ⊆ (convexHull ℝ) ↑(σ ∩ τ)
have hτ_slack : ∑ v ∈ τ, b v * w v = φ₂ x + b₂ := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τ⊢ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ ⊆ (convexHull ℝ) ↑(σ ∩ τ)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2⊢ ∑ v ∈ τ, b v * w v = φ₂ (∑ v ∈ τ, b v • v) + b₂;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2⊢ ∑ v ∈ τ, b v * (φ₂ v + b₂) = φ₂ (∑ v ∈ τ, b v • v) + b₂ ; All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * w v = φ₂ x + b₂⊢ ∑ x ∈ τ, b x * φ₂ x + b₂ - ∑ x ∈ τ, b x * ((φ₁ x + b₁ + φ₂ x + b₂) / 2) =
(∑ x ∈ τ, b x * φ₂ x + b₂ - ∑ x ∈ τ, b x * φ₁ x - b₁) / 2 ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * w v = φ₂ x + b₂⊢ ∑ x ∈ τ, b x * φ₂ x + b₂ -
∑ x ∈ τ, (b₂ * b x * (1 / 2) + b x * φ₁ x * (1 / 2) + b x * b₁ * (1 / 2) + b x * φ₂ x * (1 / 2)) =
(∑ x ∈ τ, b x * φ₂ x) * (1 / 2) + b₂ * (1 / 2) + b₁ * (-1 / 2) + (∑ x ∈ τ, b x * φ₁ x) * (-1 / 2);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * w v = φ₂ x + b₂⊢ ∑ x ∈ τ, b x * φ₂ x + b₂ -
(b₂ * (1 / 2) + (∑ i ∈ τ, b i * φ₁ i) * (1 / 2) + b₁ * (1 / 2) + (∑ x ∈ τ, b x * φ₂ x) * (1 / 2)) =
(∑ x ∈ τ, b x * φ₂ x) * (1 / 2) + b₂ * (1 / 2) + -(b₁ * (1 / 2)) + -((∑ i ∈ τ, b i * φ₁ i) * (1 / 2)) ; All goals completed! 🐙;
-- Since $a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) \geq 0$ for all $v \in σ$, and their sum is zero, each term must be zero.
have hσ_zero : ∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τ⊢ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ ⊆ (convexHull ℝ) ↑(σ ∩ τ)
have hσ_zero : ∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhτ:IsContactSet w S τ⊢ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τ ⊆ (convexHull ℝ) ↑(σ ∩ τ)
linarith [ show 0 ≤ ∑ v ∈ σ, a v * ( w v - ( φ₁ v + b₁ + φ₂ v + b₂ ) / 2 ) from Finset.sum_nonneg fun v hv => mul_nonneg ( ha.2.1 v hv ) ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2v:Fin k → ℝhv:v ∈ σ⊢ 0 ≤ w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2 All goals completed! 🐙 ), show 0 ≤ ∑ v ∈ τ, b v * ( w v - ( φ₁ v + b₁ + φ₂ v + b₂ ) / 2 ) from Finset.sum_nonneg fun v hv => mul_nonneg ( hb.2.1 v hv ) ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2v:Fin k → ℝhv:v ∈ τ⊢ 0 ≤ w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2 All goals completed! 🐙 ) ];
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ i ∈ σ, a i * (w i - (φ₁ i + b₁ + φ₂ i + b₂) / 2) = 0⊢ ∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ σ, 0 ≤ a i * (w i - (φ₁ i + b₁ + φ₂ i + b₂) / 2);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ i ∈ σ, a i * (w i - (φ₁ i + b₁ + φ₂ i + b₂) / 2) = 0⊢ ∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0 All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ σ, 0 ≤ a i * (w i - (φ₁ i + b₁ + φ₂ i + b₂) / 2) exact fun v hv => mul_nonneg ( ha.2.1 v hv ) ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0v:Fin k → ℝhv:v ∈ σ⊢ 0 ≤ w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2 All goals completed! 🐙 );
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∑ v ∈ σ, a v • v ∈
{x | ∃ ι t w z, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ (∀ i ∈ t, z i ∈ ↑(σ ∩ τ)) ∧ t.centerMass w z = x};
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ {v ∈ σ | a v ≠ 0}, 0 ≤ (fun v => a v) ik:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∑ i ∈ σ with a i ≠ 0, (fun v => a v) i = 1k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ {v ∈ σ | a v ≠ 0}, (fun v => v) i ∈ ↑(σ ∩ τ)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ({v ∈ σ | a v ≠ 0}.centerMass (fun v => a v) fun v => v) = ∑ v ∈ σ, a v • v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ {v ∈ σ | a v ≠ 0}, 0 ≤ (fun v => a v) ik:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∑ i ∈ σ with a i ≠ 0, (fun v => a v) i = 1k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ {v ∈ σ | a v ≠ 0}, (fun v => v) i ∈ ↑(σ ∩ τ)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ({v ∈ σ | a v ≠ 0}.centerMass (fun v => a v) fun v => v) = ∑ v ∈ σ, a v • v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ (∑ x ∈ σ with ¬a x = 0, a x)⁻¹ • ∑ x ∈ σ with ¬a x = 0, a x • x = ∑ v ∈ σ, a v • v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ S, φ₁ i + b₁ = w i → ¬a i = 0 → 0 ≤ a i All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∑ x ∈ σ with ¬a x = 0, a x = 1 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ x ∈ σ, a x ≠ 0 → ¬a x = 0 ; All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ i ∈ S, φ₁ i + b₁ = w i → ¬a i = 0 → (i ∈ S ∧ φ₁ i + b₁ = w i) ∧ i ∈ S ∧ φ₂ i + b₂ = w i All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ (∑ x ∈ σ with ¬a x = 0, a x)⁻¹ • ∑ x ∈ σ with ¬a x = 0, a x • x = ∑ v ∈ σ, a v • v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ (∑ x ∈ σ, a x)⁻¹ • ∑ x ∈ σ with ¬a x = 0, a x • x = ∑ v ∈ σ, a v • vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ x ∈ σ, a x ≠ 0 → ¬a x = 0 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ (∑ x ∈ σ, a x)⁻¹ • ∑ x ∈ σ with ¬a x = 0, a x • x = ∑ v ∈ σ, a v • vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ x ∈ σ, a x ≠ 0 → ¬a x = 0 All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑σ ∩ (convexHull ℝ) ↑τa:(Fin k → ℝ) → ℝha:∑ v ∈ σ, a v = 1 ∧ (∀ v ∈ σ, 0 ≤ a v) ∧ x = ∑ v ∈ σ, a v • vb:(Fin k → ℝ) → ℝhb:∑ v ∈ τ, b v = 1 ∧ (∀ v ∈ τ, 0 ≤ b v) ∧ x = ∑ v ∈ τ, b v • vφ₁:(Fin k → ℝ) →ₗ[ℝ] ℝb₁:ℝhφ₁:∀ v ∈ S, φ₁ v + b₁ ≤ w vhb₁:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ₁ v + b₁ = w vφ₂:(Fin k → ℝ) →ₗ[ℝ] ℝb₂:ℝhφ₂:∀ v ∈ S, φ₂ v + b₂ ≤ w vhb₂:∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ₂ v + b₂ = w vhσ_slack:∑ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₁ x + b₁ - φ₂ x - b₂) / 2hτ_slack:∑ v ∈ τ, b v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = (φ₂ x + b₂ - φ₁ x - b₁) / 2hσ_zero:∀ v ∈ σ, a v * (w v - (φ₁ v + b₁ + φ₂ v + b₂) / 2) = 0⊢ ∀ x ∈ σ, a x • x ≠ 0 → ¬a x = 0 ; All goals completed! 🐙
(7.2.b) Downward closure (tilting)
(7.2.b) Downward closure (tilting). If \sigma is a contact set (necessarily
affinely independent) and \emptyset \ne \tau \subseteq \sigma, then \tau is a
contact set. Let \ell be feasible with contact set \sigma. By affine independence
of \sigma there is an affine function n with n \equiv 0 on \tau and n < 0 on
\sigma \smallsetminus \tau (prescribe values on the affinely independent \sigma,
as in Proposition 4.2). For sufficiently small \varepsilon > 0, the tilted function
\ell + \varepsilon n is still feasible — on \sigma because n \le 0 there, and
on S \smallsetminus \sigma because there is positive slack w - \ell > 0, which
dominates \varepsilon |n| for small \varepsilon — and its contact set is exactly
\tau. (The empty set is also a contact set: take \ell constant, far below
\min_S w; this face is discarded when the complex is formed.)
The tilting function is built from a linear functional with prescribed values on a linearly independent family:
/-
A linear functional can take prescribed values on a linearly independent family
(extend to a basis and use `Basis.constr`).
-/
lemma exists_linearMap_eq_on {ι : Type*} [Fintype ι] (v : ι → (Fin k → ℝ))
(h : LinearIndependent ℝ v) (c : ι → ℝ) :
∃ ψ : (Fin k → ℝ) →ₗ[ℝ] ℝ, ∀ i, ψ (v i) = c i := k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝ⊢ ∃ ψ, ∀ (i : ι), ψ (v i) = c i
k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ v⊢ ∃ ψ, ∀ (i : ι), ψ (v i) = c i;
have h_dual : ∃ ψ : (Fin k → ℝ) →ₗ[ℝ] ℝ, ψ ∘ₗ (Finsupp.linearCombination ℝ v) = Finsupp.linearCombination ℝ (fun i => c i) := k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝ⊢ ∃ ψ, ∀ (i : ι), ψ (v i) = c i
have h_dual : ∀ (f : (ι →₀ ℝ) →ₗ[ℝ] (Fin k → ℝ)), Function.Injective f → ∀ (g : (ι →₀ ℝ) →ₗ[ℝ] ℝ), ∃ ψ : (Fin k → ℝ) →ₗ[ℝ] ℝ, ψ ∘ₗ f = g := k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝ⊢ ∃ ψ, ∀ (i : ι), ψ (v i) = c i
intro f k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ vf:(ι →₀ ℝ) →ₗ[ℝ] Fin k → ℝhf:Function.Injective ⇑f⊢ ∀ (g : (ι →₀ ℝ) →ₗ[ℝ] ℝ), ∃ ψ, ψ ∘ₗ f = g k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ vf:(ι →₀ ℝ) →ₗ[ℝ] Fin k → ℝhf:Function.Injective ⇑fg:(ι →₀ ℝ) →ₗ[ℝ] ℝ⊢ ∃ ψ, ψ ∘ₗ f = g;
k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis✝:LinearIndependent ℝ vf:(ι →₀ ℝ) →ₗ[ℝ] Fin k → ℝhf:Function.Injective ⇑fg:(ι →₀ ℝ) →ₗ[ℝ] ℝthis:Function.Surjective ⇑f.dualMap⊢ ∃ ψ, ψ ∘ₗ f = g;
All goals completed! 🐙;
All goals completed! 🐙;
k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ vψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:ψ ∘ₗ Finsupp.linearCombination ℝ v = Finsupp.linearCombination ℝ fun i => c i⊢ ∃ ψ, ∀ (i : ι), ψ (v i) = c i; k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ vψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:ψ ∘ₗ Finsupp.linearCombination ℝ v = Finsupp.linearCombination ℝ fun i => c i⊢ ∀ (i : ι), ψ (v i) = c i; k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ vψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:ψ ∘ₗ Finsupp.linearCombination ℝ v = Finsupp.linearCombination ℝ fun i => c ii:ι⊢ ψ (v i) = c i; k:ℕι:Type u_1inst✝:Fintype ιv:ι → Fin k → ℝh:LinearIndependent ℝ vc:ι → ℝthis:LinearIndependent ℝ vψ:(Fin k → ℝ) →ₗ[ℝ] ℝi:ιhψ:(fun f => f fun₀ | i => 1) (ψ ∘ₗ Finsupp.linearCombination ℝ v) =
(fun f => f fun₀ | i => 1) (Finsupp.linearCombination ℝ fun i => c i)⊢ ψ (v i) = c i; All goals completed! 🐙;
/-
An affine functional vanishing on `τ` and strictly negative on `σ \ τ`, for an
affinely independent `σ ⊇ τ`. Built from the barycentric coordinates of the affinely
independent family `σ` (sum of the coordinates indexed by `σ \ τ`, negated).
-/
lemma exists_affine_zero_neg (σ τ : Finset (Fin k → ℝ))
(hindep : AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)))
(hτσ : τ ⊆ σ) :
∃ n : (Fin k → ℝ) →ᵃ[ℝ] ℝ,
(∀ v ∈ τ, n v = 0) ∧ (∀ v ∈ σ, v ∉ τ → n v < 0) := k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σ⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:σ = ∅⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0;
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:σ = ∅⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0 All goals completed! 🐙;
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0 k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonempty⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:¬τ.Nonempty⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0;
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonempty⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0 obtain ⟨p₀, hp₀⟩ : ∃ p₀ ∈ τ, True := k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonempty⊢ ∃ p₀ ∈ τ, True
All goals completed! 🐙;
have h_linear_indep : LinearIndependent ℝ (fun i : {x : σ // x ≠ ⟨p₀, hτσ hp₀.left⟩} => (i : Fin k → ℝ) - p₀) := k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σ⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Truethis:AffineIndependent ℝ Subtype.val⊢ LinearIndependent ℝ fun i => ↑↑i - p₀;
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Truethis✝:AffineIndependent ℝ Subtype.valthis:LinearIndependent ℝ fun i => ↑↑i -ᵥ ↑?i1⊢ LinearIndependent ℝ fun i => ↑↑i - p₀k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Truethis:AffineIndependent ℝ Subtype.val⊢ ↥σ;
All goals completed! 🐙;
obtain ⟨ψ, hψ⟩ : ∃ ψ : (Fin k → ℝ) →ₗ[ℝ] ℝ, ∀ i : {x : σ // x ≠ ⟨p₀, hτσ hp₀.left⟩}, ψ ((i : Fin k → ℝ) - p₀) = if (i : Fin k → ℝ) ∈ τ then 0 else -1 := k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Trueh_linear_indep:LinearIndependent ℝ fun i => ↑↑i - p₀⊢ ∃ ψ, ∀ (i : { x // x ≠ ⟨p₀, ⋯⟩ }), ψ (↑↑i - p₀) = if ↑↑i ∈ τ then 0 else -1
All goals completed! 🐙;
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Trueh_linear_indep:LinearIndependent ℝ fun i => ↑↑i - p₀ψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:∀ (i : { x // x ≠ ⟨p₀, ⋯⟩ }), ψ (↑↑i - p₀) = if ↑↑i ∈ τ then 0 else -1⊢ ∀ v ∈ τ, (ψ.toAffineMap + AffineMap.const ℝ (Fin k → ℝ) (-ψ p₀)) v = 0k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Trueh_linear_indep:LinearIndependent ℝ fun i => ↑↑i - p₀ψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:∀ (i : { x // x ≠ ⟨p₀, ⋯⟩ }), ψ (↑↑i - p₀) = if ↑↑i ∈ τ then 0 else -1⊢ ∀ v ∈ σ, v ∉ τ → (ψ.toAffineMap + AffineMap.const ℝ (Fin k → ℝ) (-ψ p₀)) v < 0 k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Trueh_linear_indep:LinearIndependent ℝ fun i => ↑↑i - p₀ψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:∀ (i : { x // x ≠ ⟨p₀, ⋯⟩ }), ψ (↑↑i - p₀) = if ↑↑i ∈ τ then 0 else -1⊢ ∀ v ∈ τ, (ψ.toAffineMap + AffineMap.const ℝ (Fin k → ℝ) (-ψ p₀)) v = 0k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Trueh_linear_indep:LinearIndependent ℝ fun i => ↑↑i - p₀ψ:(Fin k → ℝ) →ₗ[ℝ] ℝhψ:∀ (i : { x // x ≠ ⟨p₀, ⋯⟩ }), ψ (↑↑i - p₀) = if ↑↑i ∈ τ then 0 else -1⊢ ∀ v ∈ σ, v ∉ τ → (ψ.toAffineMap + AffineMap.const ℝ (Fin k → ℝ) (-ψ p₀)) v < 0 k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:τ.Nonemptyp₀:Fin k → ℝhp₀:p₀ ∈ τ ∧ Trueψ:(Fin k → ℝ) →ₗ[ℝ] ℝh_linear_indep:LinearIndependent ℝ fun i => ↑↑i - p₀hψ:∀ (a : Fin k → ℝ) (b : a ∈ σ) (b_1 : ¬a = p₀), ψ a - ψ p₀ = if a ∈ τ then 0 else -1⊢ ∀ v ∈ σ, v ∉ τ → ψ v < ψ p₀; all_goals All goals completed! 🐙;
k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:¬τ.Nonempty⊢ ∃ n, (∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0 exact ⟨ AffineMap.const ℝ _ ( -1 ), k:ℕσ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σhσ:¬σ = ∅hτ:¬τ.Nonempty⊢ (∀ v ∈ τ, (AffineMap.const ℝ (Fin k → ℝ) (-1)) v = 0) ∧ ∀ v ∈ σ, v ∉ τ → (AffineMap.const ℝ (Fin k → ℝ) (-1)) v < 0 All goals completed! 🐙 ⟩
/-
**Downward closure (tilting).** If `σ` is a contact set that is *affinely independent*
and `τ ⊆ σ` is nonempty, then `τ` is also a contact set. Tilt the supporting function of
`σ` by `ε · n`, where `n` is an affine function vanishing on `τ` and strictly negative on
`σ \ τ` (it exists by affine independence of `σ`), keeping `≤ w` on `S` for small `ε`.
-/
set_option maxHeartbeats 4000000 in
theorem IsContactSet_subset
(w : (Fin k → ℝ) → ℝ) (S σ τ : Finset (Fin k → ℝ))
(hσ : IsContactSet w S σ)
(hindep : AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)))
(hτσ : τ ⊆ σ) :
IsContactSet w S τ := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hσ:IsContactSet w S σhindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σ⊢ IsContactSet w S τ
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w v⊢ IsContactSet w S τ
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0⊢ IsContactSet w S τ;
-- Choose ε > 0 small enough that for every v ∈ S \ σ, ε * |n v| < w v - ℓ v.
obtain ⟨ε, hε_pos, hε⟩ : ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:S \ σ = ∅⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:S \ σ = ∅⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b) exact ⟨ 1, zero_lt_one, k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:S \ σ = ∅⊢ ∀ v ∈ S \ σ, 1 * |n v| < w v - (φ v + b) All goals completed! 🐙 ⟩;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b) have hε_pos : ∃ ε > 0, ∀ v ∈ S \ σ, ε < (w v - (φ v + b)) / (|n v| + 1) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)
have hε_pos : ∃ ε > 0, ∀ v ∈ S \ σ, ε ≤ (w v - (φ v + b)) / (|n v| + 1) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)
have h_pos : ∀ v ∈ S \ σ, 0 < (w v - (φ v + b)) / (|n v| + 1) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)
exact fun v hv => div_pos ( sub_pos.mpr ( lt_of_le_of_ne ( hφb.1 v ( Finset.mem_sdiff.mp hv |>.1 ) ) ( Ne.symm ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅v:Fin k → ℝhv:v ∈ S \ σ⊢ w v ≠ φ v + b k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅v:Fin k → ℝhv:v ∈ S \ σhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w v⊢ w v ≠ φ v + b; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅v:Fin k → ℝhv:v ∈ S \ σhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w v⊢ w v ≠ φ v + b; All goals completed! 🐙 ) ) ) ) ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅v:Fin k → ℝhv:v ∈ S \ σ⊢ 0 < |n v| + 1 All goals completed! 🐙 )
exact ⟨ Finset.min' ( Finset.image ( fun v => ( w v - ( φ v + b ) ) / ( |n v| + 1 ) ) ( S \ σ ) ) ⟨ _, Finset.mem_image_of_mem _ ( Classical.choose_spec ( Finset.nonempty_of_ne_empty hSσ ) ) ⟩, k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅h_pos:∀ v ∈ S \ σ, 0 < (w v - (φ v + b)) / (|n v| + 1)⊢ (Finset.image (fun v => (w v - (φ v + b)) / (|n v| + 1)) (S \ σ)).min' ⋯ > 0 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅h_pos:∀ v ∈ S \ σ, 0 < (w v - (φ v + b)) / (|n v| + 1)this:(Finset.image (fun v => (w v - (φ v + b)) / (|n v| + 1)) (S \ σ)).min' ⋯ ∈
Finset.image (fun v => (w v - (φ v + b)) / (|n v| + 1)) (S \ σ)⊢ (Finset.image (fun v => (w v - (φ v + b)) / (|n v| + 1)) (S \ σ)).min' ⋯ > 0 ; All goals completed! 🐙, fun v hv => Finset.min'_le _ _ ( Finset.mem_image_of_mem _ hv ) ⟩;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε ≤ (w v - (φ v + b)) / (|n v| + 1)⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε < (w v - (φ v + b)) / (|n v| + 1); exact ⟨ ε / 2, half_pos hε_pos, fun v hv => k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε ≤ (w v - (φ v + b)) / (|n v| + 1)v:Fin k → ℝhv:v ∈ S \ σ⊢ ε / 2 < (w v - (φ v + b)) / (|n v| + 1) All goals completed! 🐙 ⟩ ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε < (w v - (φ v + b)) / (|n v| + 1)⊢ ∃ ε > 0, ∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b); exact ⟨ ε, hε_pos, fun v hv => k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε < (w v - (φ v + b)) / (|n v| + 1)v:Fin k → ℝhv:v ∈ S \ σ⊢ ε * |n v| < w v - (φ v + b) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε < (w v - (φ v + b)) / (|n v| + 1)v:Fin k → ℝhv:v ∈ S \ σthis:ε < (w v - (φ v + b)) / (|n v| + 1)⊢ ε * |n v| < w v - (φ v + b); k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0hSσ:¬S \ σ = ∅ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε < (w v - (φ v + b)) / (|n v| + 1)v:Fin k → ℝhv:v ∈ S \ σthis:ε * (|n v| + 1) < w v - (φ v + b)⊢ ε * |n v| < w v - (φ v + b); All goals completed! 🐙 ⟩ ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)⊢ ∀ v ∈ S, (φ + ε • n.linear) v + (b + ε • n 0) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)⊢ ∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ (φ + ε • n.linear) v + (b + ε • n 0) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)⊢ ∀ v ∈ S, (φ + ε • n.linear) v + (b + ε • n 0) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ σ, v ∉ τ → n v < 0ε:ℝhε_pos:ε > 0hε:∀ v ∈ S \ σ, ε * |n v| < w v - (φ v + b)⊢ ∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ (φ + ε • n.linear) v + (b + ε • n 0) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εhε:∀ v ∈ S, ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)⊢ ∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εhε:∀ v ∈ S, ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)⊢ ∀ v ∈ S, φ v + n.linear v * ε + (b + n 0 * ε) ≤ w v intro v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εhε:∀ v ∈ S, ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)v:Fin k → ℝhv:v ∈ S⊢ φ v + n.linear v * ε + (b + n 0 * ε) ≤ w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)⊢ φ v + n.linear v * ε + (b + n 0 * ε) ≤ w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)h:φ v + b = w v⊢ φ v + n.linear v * ε + (b + n 0 * ε) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)h:¬φ v + b = w v⊢ φ v + n.linear v * ε + (b + n 0 * ε) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)h:φ v + b = w v⊢ φ v + n.linear v * ε + (b + n 0 * ε) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)h:¬φ v + b = w v⊢ φ v + n.linear v * ε + (b + n 0 * ε) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w v⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w v⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∈ τ⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τ⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∈ τ⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τ⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τ⊢ φ v + ε * n.linear v + b + ε * n 0 ≤ w v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∈ τ⊢ φ v + ε * n.linear v + b + ε * n 0 ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∈ τthis:n (v +ᵥ 0) = n.linear v +ᵥ n 0⊢ φ v + ε * n.linear v + b + ε * n 0 ≤ w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:n 0 + n.linear v < εhv:v ∈ Sh:b + φ v = w vhvτ:v ∈ τthis:0 = n 0 + n.linear v⊢ b + (φ v + (ε * n 0 + ε * n.linear v)) ≤ w v ;
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τ⊢ φ v + ε * n.linear v + b + ε * n 0 ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τthis:⇑n = ⇑n.linear + fun x => n 0⊢ φ v + ε * n.linear v + b + ε * n 0 ≤ w v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τthis:n v = (⇑n.linear + fun x => n 0) v⊢ φ v + ε * n.linear v + b + ε * n 0 ≤ w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Sh:φ v + b = w vhvτ:v ∉ τthis:n v = n.linear v + n 0⊢ φ v + (ε * n.linear v + (b + ε * n 0)) ≤ w v ;
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w v⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w vh✝:|n v| = n v ∧ 0 ≤ n v⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w vh✝:|n v| = -n v ∧ n v < 0⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w vh✝:|n v| = n v ∧ 0 ≤ n v⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w vh✝:|n v| = -n v ∧ n v < 0⊢ φ v + ε * n.linear v + (b + ε * n 0) ≤ w v nlinarith [ show n v = n.linear v + n 0 from k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εv:Fin k → ℝhv:v ∈ Shε:ε * |n v| < w v - (φ v + b)h:¬φ v + b = w vh✝:|n v| = -n v ∧ n v < 0⊢ n v = n.linear v + n 0 All goals completed! 🐙 ];
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εhε:∀ v ∈ S, ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)⊢ ∀ (v : Fin k → ℝ), v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε_pos:0 < εhε:∀ v ∈ S, ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)v:Fin k → ℝ⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εhε:∀ v ∈ S, ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)v:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:v ∈ S → ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:v ∈ S → ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ S⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:v ∈ S → ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∉ S⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:v ∈ S → ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ S⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:v ∈ S → ¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∉ S⊢ v ∈ τ ↔ v ∈ S ∧ φ v + n.linear v * ε + (b + n 0 * ε) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∉ S⊢ v ∉ τ ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ S⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:v ∈ σ⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:v ∉ σ⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:v ∈ σ⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:¬φ v + b = w v → |n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:v ∉ σ⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w v⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w v⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w v⊢ v ∈ τ → φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w v⊢ φ v + n.linear v * ε + b + n 0 * ε = w v → v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w v⊢ v ∈ τ → φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w v⊢ φ v + n.linear v * ε + b + n 0 * ε = w v → v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w vhvτ:φ v + n.linear v * ε + b + n 0 * ε = w v⊢ v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w vhvτ:v ∈ τ⊢ φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:φ v + b = w vhvτ:φ v + n.linear v * ε + b + n 0 * ε = w v⊢ v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, b + φ v = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:b + φ v = w vhvτ:b + (φ v + (n 0 * ε + n.linear v * ε)) = w v⊢ v ∈ τ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, b + φ v = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:b + φ v = w vhvτ:v ∈ τ⊢ b + (φ v + (n 0 * ε + n.linear v * ε)) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, b + φ v = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:b + φ v = w vhvτ:v ∈ τthis:n (v +ᵥ 0) = n.linear v +ᵥ n 0⊢ b + (φ v + (n 0 * ε + n.linear v * ε)) = w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:n 0 + n.linear v < εhn:(∀ v_1 ∈ τ, n v_1 = n 0 + n.linear v) ∧ ∀ v_1 ∈ S, b + φ v_1 = w v_1 → v_1 ∉ τ → n v_1 < n 0 + n.linear vhv:v ∈ Shvσ:b + φ v = w vhvτ:v ∈ τthis:0 = n 0 + n.linear v⊢ b + (φ v + (n 0 * ε + n.linear v * ε)) = w v ;
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, b + φ v = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:b + φ v = w vhvτ:b + (φ v + (n 0 * ε + n.linear v * ε)) = w v⊢ v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhv:v ∈ Shvσ:b + φ v = w vhvτ:b + (φ v + (n 0 * ε + n.linear v * ε)) = w vhn:v ∉ τ⊢ (∀ v ∈ τ, n v = 0) → ∃ v ∈ S, b + φ v = w v ∧ v ∉ τ ∧ 0 ≤ n v;
exact fun h => ⟨ v, hv, hvσ, hn, k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhv:v ∈ Shvσ:b + φ v = w vhvτ:b + (φ v + (n 0 * ε + n.linear v * ε)) = w vhn:v ∉ τh:∀ v ∈ τ, n v = 0⊢ 0 ≤ n v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhv:v ∈ Shvσ:b + φ v = w vhvτ:b + (φ v + (n 0 * ε + n.linear v * ε)) = w vhn:v ∉ τh:∀ v ∈ τ, n v = 0this:n (v +ᵥ 0) = n.linear v +ᵥ n 0⊢ 0 ≤ n v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝv:Fin k → ℝhφb:(∀ v ∈ S, b + φ v ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ b + φ v = w vhε_pos:0 < εhv:v ∈ Shvσ:b + φ v = w vhvτ:b + (φ v + (n 0 * ε + n.linear v * ε)) = w vhn:v ∉ τh:∀ v ∈ τ, n v = 0this:n v = n.linear v + n 0⊢ 0 ≤ n v; All goals completed! 🐙 ⟩;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w v⊢ v ∈ τ ↔ φ v + n.linear v * ε + b + n 0 * ε = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w v⊢ v ∈ τ → φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w v⊢ φ v + n.linear v * ε + b + n 0 * ε = w v → v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w v⊢ v ∈ τ → φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w v⊢ φ v + n.linear v * ε + b + n 0 * ε = w v → v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w v⊢ v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w va✝:v ∈ τ⊢ φ v + n.linear v * ε + b + n 0 * ε = w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hε:|n v| * ε < w v - (φ v + b)hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w v⊢ v ∈ τ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τ⊢ w v - (φ v + b) ≤ |n v| * ε;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:v ∈ τhε:φ v + n.linear v * ε + b + n 0 * ε ≠ w v⊢ w v - (φ v + b) ≤ |n v| * ε All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τ⊢ w v - (φ v + b) ≤ |n v| * ε k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τ⊢ w v - (φ v + b) ≤ |n.linear v + n 0| * ε ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τh✝:|n.linear v + n 0| = n.linear v + n 0 ∧ 0 ≤ n.linear v + n 0⊢ w v - (φ v + b) ≤ |n.linear v + n 0| * εk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τh✝:|n.linear v + n 0| = -(n.linear v + n 0) ∧ n.linear v + n 0 < 0⊢ w v - (φ v + b) ≤ |n.linear v + n 0| * ε k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τh✝:|n.linear v + n 0| = n.linear v + n 0 ∧ 0 ≤ n.linear v + n 0⊢ w v - (φ v + b) ≤ |n.linear v + n 0| * εk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∈ Shvσ:¬φ v + b = w va✝:φ v + n.linear v * ε + b + n 0 * ε = w vhε:v ∉ τh✝:|n.linear v + n 0| = -(n.linear v + n 0) ∧ n.linear v + n 0 < 0⊢ w v - (φ v + b) ≤ |n.linear v + n 0| * ε All goals completed! 🐙 ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)σ:Finset (Fin k → ℝ)τ:Finset (Fin k → ℝ)hindep:AffineIndependent ℝ Subtype.valhτσ:τ ⊆ σφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφb:(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vn:(Fin k → ℝ) →ᵃ[ℝ] ℝε:ℝhε_pos:0 < εv:Fin k → ℝhn:(∀ v ∈ τ, n v = 0) ∧ ∀ v ∈ S, φ v + b = w v → v ∉ τ → n v < 0hv:v ∉ S⊢ v ∉ τ All goals completed! 🐙
/-
The empty set is a contact set (take any `ℓ` strictly below `w` on `S`, e.g. shift the
zero functional far down).
-/
theorem IsContactSet_empty (w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ)) :
IsContactSet w S (∅ : Finset (Fin k → ℝ)) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)⊢ IsContactSet w S ∅
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ IsContactSet w S ∅k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:¬S.Nonempty⊢ IsContactSet w S ∅;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ IsContactSet w S ∅ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ (Finset.image w S).Nonemptyk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ ∀ v ∈ S, 0 v + ((Finset.image w S).min' ?pos.refine'_1✝ - 1) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ ∀ (v : Fin k → ℝ), v ∈ ∅ ↔ v ∈ S ∧ 0 v + ((Finset.image w S).min' ?pos.refine'_1✝ - 1) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ (Finset.image w S).Nonemptyk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ ∀ v ∈ S, 0 v + ((Finset.image w S).min' ?pos.refine'_1✝ - 1) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ ∀ (v : Fin k → ℝ), v ∈ ∅ ↔ v ∈ S ∧ 0 v + ((Finset.image w S).min' ?pos.refine'_1✝ - 1) = w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonempty⊢ ∀ v ∈ S, ¬(Finset.image w S).min' ⋯ - 1 = w v;
exacts [ hS, fun v hv => le_add_of_le_of_nonneg ( Finset.min'_le _ _ ( Finset.mem_image_of_mem _ hv ) ) zero_le_one, fun v hv => k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:S.Nonemptyv:Fin k → ℝhv:v ∈ S⊢ ¬(Finset.image w S).min' ⋯ - 1 = w v All goals completed! 🐙 ];
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:¬S.Nonempty⊢ IsContactSet w S ∅ exact ⟨ 0, 0, k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hS:¬S.Nonempty⊢ (∀ v ∈ S, 0 v + 0 ≤ w v) ∧ ∀ (v : Fin k → ℝ), v ∈ ∅ ↔ v ∈ S ∧ 0 v + 0 = w v All goals completed! 🐙 ⟩
(7.2.a) Genericity
(7.2.a) Genericity. There is a height w for which every contact set is affinely
independent. For every affinely dependent subset E \subseteq S, fix a nontrivial
affine relation \sum_{v \in E} c_v\,v = 0, \sum_v c_v = 0, some c_v \ne 0. The
heights w with \sum_{v\in E} c_v\,w(v) = 0 form a proper linear subspace of the
vector space of functions S \to \mathbb R. There are finitely many subsets E, and
a finite union of proper subspaces of a real vector space cannot be the whole space;
choose w avoiding all of them. If now \sigma_\ell were affinely dependent for some
feasible \ell, then with the chosen relation on E := \sigma_\ell:
\sum_v c_v\,w(v) = \sum_v c_v\,\ell(v) = 0 (an affine function applied to an affine
relation with total weight zero), contradicting the choice of w. Fix such a generic
w from now on.
/-
Over the infinite field `ℝ`, a height function avoiding finitely many kernels of nonzero
linear functionals exists (a finite union of proper subspaces does not cover the space).
-/
lemma exists_avoiding_kernels {ι : Type*} (t : Finset ι)
(L : ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ) (hL : ∀ i ∈ t, L i ≠ 0) :
∃ w : (Fin k → ℝ) → ℝ, ∀ i ∈ t, L i w ≠ 0 := k:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0⊢ ∃ w, ∀ i ∈ t, (L i) w ≠ 0
have h_finite_union : ¬(⋃ i ∈ t, {w : (Fin k → ℝ) → ℝ | (L i) w = 0}) = Set.univ := k:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0⊢ ∃ w, ∀ i ∈ t, (L i) w ≠ 0
have h_union_ne_univ : ∀ (s : Finset (Submodule ℝ ((Fin k → ℝ) → ℝ))), (∀ p ∈ s, p ≠ ⊤) → (⋃ p ∈ s, (p : Set ((Fin k → ℝ) → ℝ))) ≠ Set.univ := k:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0⊢ ∃ w, ∀ i ∈ t, (L i) w ≠ 0
All goals completed! 🐙
k:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0h_union_ne_univ:∀ (s : Finset (Submodule ℝ ((Fin k → ℝ) → ℝ))), (∀ p ∈ s, p ≠ ⊤) → ⋃ p ∈ s, ↑p ≠ univ⊢ ⋃ i ∈ t, {w | (L i) w = 0} = univ ↔ ⋃ p ∈ Finset.image (fun i => (L i).ker) t, ↑p = univk:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0h_union_ne_univ:∀ (s : Finset (Submodule ℝ ((Fin k → ℝ) → ℝ))), (∀ p ∈ s, p ≠ ⊤) → ⋃ p ∈ s, ↑p ≠ univ⊢ ∀ p ∈ Finset.image (fun i => (L i).ker) t, p ≠ ⊤ k:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0h_union_ne_univ:∀ (s : Finset (Submodule ℝ ((Fin k → ℝ) → ℝ))), (∀ p ∈ s, p ≠ ⊤) → ⋃ p ∈ s, ↑p ≠ univ⊢ ⋃ i ∈ t, {w | (L i) w = 0} = univ ↔ ⋃ p ∈ Finset.image (fun i => (L i).ker) t, ↑p = univk:ℕι:Type u_1t:Finset ιL:ι → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝhL:∀ i ∈ t, L i ≠ 0h_union_ne_univ:∀ (s : Finset (Submodule ℝ ((Fin k → ℝ) → ℝ))), (∀ p ∈ s, p ≠ ⊤) → ⋃ p ∈ s, ↑p ≠ univ⊢ ∀ p ∈ Finset.image (fun i => (L i).ker) t, p ≠ ⊤ All goals completed! 🐙;
try exact Classical.decEq _;
All goals completed! 🐙
/-
**Genericity.** There is a height function `w` for which every contact set is affinely
independent. Choose `w` avoiding, for each affinely dependent subset `T ⊆ S`, the proper
linear subspace of heights that are affine on `T`; a finite union of proper subspaces of
the (finite-dimensional, real) height space does not cover it.
-/
theorem exists_generic_height (S : Finset (Fin k → ℝ)) :
∃ w : (Fin k → ℝ) → ℝ, ∀ σ : Finset (Fin k → ℝ),
IsContactSet w S σ → AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)) := k:ℕS:Finset (Fin k → ℝ)⊢ ∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val
k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ False;
-- For each subset `σ ⊆ S`, if `σ` is NOT affinely independent, `exists_nontrivial_relation_sum_zero_of_not_affine_ind` gives `f σ : (Fin k → ℝ) → ℝ` with `∑_{v∈σ} f σ v • v = 0`, `∑_{v∈σ} f σ v = 0`, and some `x₀ ∈ σ` with `f σ x₀ ≠ 0` (use `Classical.choose`; for affinely independent `σ` set `f σ = 0`).
have h_relation : ∀ σ : Finset (Fin k → ℝ), ¬AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)) → ∃ f : (Fin k → ℝ) → ℝ, (∑ v ∈ σ, f v • v = 0) ∧ (∑ v ∈ σ, f v = 0) ∧ (∃ x ∈ σ, f x ≠ 0) := k:ℕS:Finset (Fin k → ℝ)⊢ ∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val
intro σ k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valσ:Finset (Fin k → ℝ)hσ:¬AffineIndependent ℝ Subtype.val⊢ ∃ f, ∑ v ∈ σ, f v • v = 0 ∧ ∑ v ∈ σ, f v = 0 ∧ ∃ x ∈ σ, f x ≠ 0;
All goals completed! 🐙;
k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0⊢ False;
-- Define `L σ : ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := ∑_{v∈σ} f σ v • LinearMap.proj v`, so `L σ w = ∑_{v∈σ} f σ v * w v`.
k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj v⊢ False
have hL : ∀ σ : Finset (Fin k → ℝ), ¬AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)) → L σ ≠ 0 := k:ℕS:Finset (Fin k → ℝ)⊢ ∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val
intro σ k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vσ:Finset (Fin k → ℝ)hσ:¬AffineIndependent ℝ Subtype.val⊢ L σ ≠ 0; k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝL:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vσ:Finset (Fin k → ℝ)hσ:¬AffineIndependent ℝ Subtype.valhf:∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0⊢ L σ ≠ 0; k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝL:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vσ:Finset (Fin k → ℝ)h:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhσ:¬AffineIndependent ℝ Subtype.valhf:(∀ (x : Fin k), ∑ x_1 ∈ σ, f σ x_1 * x_1 x = 0) ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0⊢ ∃ x, ¬(L σ) x = 0 ;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝL:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vσ:Finset (Fin k → ℝ)h:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhσ:¬AffineIndependent ℝ Subtype.valhf:(∀ (x : Fin k), ∑ x_1 ∈ σ, f σ x_1 * x_1 x = 0) ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0x:Fin k → ℝhx₁:x ∈ σhx₂:¬f σ x = 0⊢ ∃ x, ¬(L σ) x = 0; k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝL:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vσ:Finset (Fin k → ℝ)h:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhσ:¬AffineIndependent ℝ Subtype.valhf:(∀ (x : Fin k), ∑ x_1 ∈ σ, f σ x_1 * x_1 x = 0) ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0x:Fin k → ℝhx₁:x ∈ σhx₂:¬f σ x = 0⊢ ¬(L σ) (Pi.single x 1) = 0; k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝL:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vσ:Finset (Fin k → ℝ)h:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhσ:¬AffineIndependent ℝ Subtype.valhf:(∀ (x : Fin k), ∑ x_1 ∈ σ, f σ x_1 * x_1 x = 0) ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0x:Fin k → ℝhx₁:x ∈ σhx₂:¬f σ x = 0⊢ ¬∑ x_1 ∈ σ, f σ x_1 * Pi.single x 1 x_1 = 0 ;
All goals completed! 🐙;
-- Apply `exists_avoiding_kernels t L` to get `w` with `L σ w ≠ 0` for all `σ ∈ t`, i.e. `∑_{v∈σ} f σ v * w v ≠ 0`.
obtain ⟨w, hw⟩ : ∃ w : (Fin k → ℝ) → ℝ, ∀ σ : Finset (Fin k → ℝ), σ ⊆ S → ¬AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)) → L σ w ≠ 0 := k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → L σ ≠ 0⊢ ∃ w, ∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → (L σ) w ≠ 0
have h_finite : Set.Finite {σ : Finset (Fin k → ℝ) | σ ⊆ S ∧ ¬AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ))} := k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → L σ ≠ 0⊢ ∃ w, ∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → (L σ) w ≠ 0
All goals completed! 🐙;
have := exists_avoiding_kernels h_finite.toFinset ( fun σ => L σ ) ( fun σ hσ => hL σ <| k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → L σ ≠ 0h_finite:{σ | σ ⊆ S ∧ ¬AffineIndependent ℝ Subtype.val}.Finiteσ:Finset (Fin k → ℝ)hσ:σ ∈ h_finite.toFinset⊢ ¬AffineIndependent ℝ Subtype.val All goals completed! 🐙 ) ; All goals completed! 🐙;
k:ℕS:Finset (Fin k → ℝ)h:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → L σ ≠ 0w:(Fin k → ℝ) → ℝhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → (L σ) w ≠ 0σ:Finset (Fin k → ℝ)hσ:IsContactSet w S σ⊢ AffineIndependent ℝ Subtype.val;
k:ℕS:Finset (Fin k → ℝ)h✝:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → L σ ≠ 0w:(Fin k → ℝ) → ℝhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → (L σ) w ≠ 0σ:Finset (Fin k → ℝ)hσ:IsContactSet w S σh:¬AffineIndependent ℝ Subtype.val⊢ (L σ) w = 0;
k:ℕS:Finset (Fin k → ℝ)h✝:¬∃ w, ∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valf:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, f σ x ≠ 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → L σ ≠ 0w:(Fin k → ℝ) → ℝhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → (L σ) w ≠ 0σ:Finset (Fin k → ℝ)h:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w v⊢ (L σ) w = 0;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ ∑ x ∈ σ, f σ x * w x = 0;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ ∑ x ∈ σ, f σ x * (φ x + b) = 0;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ ∑ x ∈ σ, f σ x * φ x = 0;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ ∑ x ∈ σ, f σ x * φ x = φ (∑ v ∈ σ, f σ v • v)k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ 0 = φ 0;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ ∑ x ∈ σ, f σ x * φ x = φ (∑ v ∈ σ, f σ v • v) All goals completed! 🐙;
k:ℕS:Finset (Fin k → ℝ)f:Finset (Fin k → ℝ) → (Fin k → ℝ) → ℝhf:∀ (σ : Finset (Fin k → ℝ)),
¬AffineIndependent ℝ Subtype.val → ∑ v ∈ σ, f σ v • v = 0 ∧ ∑ v ∈ σ, f σ v = 0 ∧ ∃ x ∈ σ, ¬f σ x = 0L:Finset (Fin k → ℝ) → ((Fin k → ℝ) → ℝ) →ₗ[ℝ] ℝ := fun σ => ∑ v ∈ σ, f σ v • LinearMap.proj vhL:∀ (σ : Finset (Fin k → ℝ)), ¬AffineIndependent ℝ Subtype.val → ¬∑ v ∈ σ, f σ v • LinearMap.proj v = 0w:(Fin k → ℝ) → ℝσ:Finset (Fin k → ℝ)h✝:¬AffineIndependent ℝ Subtype.valφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:∀ v ∈ S, φ v + b ≤ w vhb:∀ (v : Fin k → ℝ), v ∈ σ ↔ v ∈ S ∧ φ v + b = w vh:∀ (x : (Fin k → ℝ) → ℝ), ∃ x_1, IsContactSet x S x_1 ∧ ¬AffineIndependent ℝ Subtype.valhw:∀ σ ⊆ S, ¬AffineIndependent ℝ Subtype.val → ¬∑ x ∈ σ, f σ x * w x = 0⊢ 0 = φ 0 All goals completed! 🐙
(7.2.d) Covering
(7.2.d) Covering. Every x \in \operatorname{conv}(S) lies in
\operatorname{conv}(\sigma_\ell) for some feasible \ell. This has two parts.
Optimal implies covering (the Lean development proves this direction first).
Let \ell be feasible and maximize the value at x;
suppose toward a contradiction x \notin \operatorname{conv}(\sigma_\ell). Separate:
there is a linear \psi and u \in \mathbb R with \psi < u on
\operatorname{conv}(\sigma_\ell) and \psi(x) > u. For small s > 0, the tilted
function \ell + s(\psi - u) is still feasible — on \sigma_\ell because
\psi - u < 0 there, and off \sigma_\ell because of positive slack — and its
value at x is \ell(x) + s(\psi(x) - u) > \ell(x), contradicting optimality.
/-
**Optimality ⇒ covered.** If the affine function `ℓ = φ + b` is feasible (`≤ w` on `S`)
and maximizes `ℓ x` among all feasible affine functions, then `x` lies in the convex hull
of its contact set. (If not, separate `x` from `convexHull (contact set)` by a functional
`ψ`; tilting `ℓ` in the `ψ` direction stays feasible for small steps and strictly increases
`ℓ x`, contradicting optimality.)
-/
lemma cover_of_optimal
(w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
{x : Fin k → ℝ} (hx : x ∈ convexHull ℝ (S : Set (Fin k → ℝ)))
(φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ)
(hle : ∀ v ∈ S, φ v + b ≤ w v)
(hopt : ∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ),
(∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b) :
x ∈ convexHull ℝ ((S.filter (fun v => φ v + b = w v) : Finset (Fin k → ℝ)) : Set (Fin k → ℝ)) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vhopt:∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ), (∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b⊢ x ∈ (convexHull ℝ) ↑({v ∈ S | φ v + b = w v})
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vhopt:x ∉ (convexHull ℝ) ↑({v ∈ S | φ v + b = w v})⊢ ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b';
-- Let `σ := S.filter (fun v => φ v + b = w v)` (the contact set).
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σ⊢ ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b';
-- Since `convexHull ℝ σ` is convex and closed, and `x ∉ convexHull ℝ σ`, by the geometric Hahn-Banach theorem, there exists a continuous linear functional `ψ` and a real number `u` such that `ψ z < u` for all `z ∈ convexHull ℝ σ` and `u < ψ x`.
obtain ⟨ψ, u, hψ⟩ : ∃ ψ : (Fin k → ℝ) →L[ℝ] ℝ, ∃ u : ℝ, (∀ z ∈ convexHull ℝ (σ : Set (Fin k → ℝ)), ψ z < u) ∧ u < ψ x := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σ⊢ ∃ ψ u, (∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σthis:∀ [inst : TopologicalSpace (Fin k → ℝ)] [inst_1 : AddCommGroup (Fin k → ℝ)] [inst_2 : Module ℝ (Fin k → ℝ)]
{s : Set (Fin k → ℝ)} {x : Fin k → ℝ} [IsTopologicalAddGroup (Fin k → ℝ)] [ContinuousSMul ℝ (Fin k → ℝ)]
[LocallyConvexSpace ℝ (Fin k → ℝ)], Convex ℝ s → IsClosed s → x ∉ s → ∃ f u, (∀ a ∈ s, f a < u) ∧ u < f x⊢ ∃ ψ u, (∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x;
All goals completed! 🐙;
-- Choose `s > 0` small enough such that `s * (ψ x - u) > 0` and `s * (ψ v - u) < w v - (φ v + b)` for all `v ∈ S \ σ`.
obtain ⟨s, hs_pos, hs_small⟩ : ∃ s > 0, ∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x⊢ ∃ s > 0, ∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)
have h_pos : ∀ v ∈ S \ σ, w v - (φ v + b) > 0 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x⊢ ∃ s > 0, ∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)
All goals completed! 🐙;
have h_pos : ∃ s > 0, ∀ v ∈ S \ σ, s * |ψ v - u| < w v - (φ v + b) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x⊢ ∃ s > 0, ∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)
have h_pos : ∃ s > 0, ∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x⊢ ∃ s > 0, ∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:S \ σ = ∅⊢ ∃ s > 0, ∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅⊢ ∃ s > 0, ∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:S \ σ = ∅⊢ ∃ s > 0, ∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1) exact ⟨ 1, zero_lt_one, k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:S \ σ = ∅⊢ ∀ v ∈ S \ σ, 1 < (w v - (φ v + b)) / (|ψ v - u| + 1) All goals completed! 🐙 ⟩;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅⊢ ∃ s > 0, ∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1) have h_min : ∃ m ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), ∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), m ≤ n := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ x⊢ ∃ s > 0, ∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅m:ℝhm₁:m ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ)hm₂:∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), m ≤ n⊢ ∃ s > 0, ∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1);
exact ⟨ m / 2, half_pos ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅m:ℝhm₁:m ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ)hm₂:∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), m ≤ n⊢ 0 < m k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅v:Fin k → ℝhv₁:v ∈ S \ σhm₁:(w v - (φ v + b)) / (|ψ v - u| + 1) ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ)hm₂:∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), (w v - (φ v + b)) / (|ψ v - u| + 1) ≤ n⊢ 0 < (w v - (φ v + b)) / (|ψ v - u| + 1); exact div_pos ( h_pos v hv₁ ) ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅v:Fin k → ℝhv₁:v ∈ S \ σhm₁:(w v - (φ v + b)) / (|ψ v - u| + 1) ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ)hm₂:∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), (w v - (φ v + b)) / (|ψ v - u| + 1) ≤ n⊢ 0 < |ψ v - u| + 1 All goals completed! 🐙 ) ), fun v hv => k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅m:ℝhm₁:m ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ)hm₂:∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), m ≤ nv:Fin k → ℝhv:v ∈ S \ σ⊢ m / 2 < (w v - (φ v + b)) / (|ψ v - u| + 1) linarith [ hm₂ _ ( Finset.mem_image_of_mem _ hv ), show 0 < ( w v - ( φ v + b ) ) / ( |ψ v - u| + 1 ) from div_pos ( h_pos v hv ) ( k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0h_empty:¬S \ σ = ∅m:ℝhm₁:m ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ)hm₂:∀ n ∈ Finset.image (fun v => (w v - (φ v + b)) / (|ψ v - u| + 1)) (S \ σ), m ≤ nv:Fin k → ℝhv:v ∈ S \ σ⊢ 0 < |ψ v - u| + 1 All goals completed! 🐙 ) ] ⟩;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0s:ℝhs₀:s > 0hs:∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1)⊢ ∃ s > 0, ∀ v ∈ S \ σ, s * |ψ v - u| < w v - (φ v + b); exact ⟨ s, hs₀, fun v hv => k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0s:ℝhs₀:s > 0hs:∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1)v:Fin k → ℝhv:v ∈ S \ σ⊢ s * |ψ v - u| < w v - (φ v + b) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0s:ℝhs₀:s > 0hs:∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1)v:Fin k → ℝhv:v ∈ S \ σthis:s < (w v - (φ v + b)) / (|ψ v - u| + 1)⊢ s * |ψ v - u| < w v - (φ v + b); k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xh_pos:∀ v ∈ S \ σ, w v - (φ v + b) > 0s:ℝhs₀:s > 0hs:∀ v ∈ S \ σ, s < (w v - (φ v + b)) / (|ψ v - u| + 1)v:Fin k → ℝhv:v ∈ S \ σthis:s * (|ψ v - u| + 1) < w v - (φ v + b)⊢ s * |ψ v - u| < w v - (φ v + b); All goals completed! 🐙 ⟩ ;
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:s > 0hs_small:∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)⊢ ∀ v ∈ S, (φ + s • ↑ψ) v + (b - s * u) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:s > 0hs_small:∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)⊢ φ x + b < (φ + s • ↑ψ) x + (b - s * u) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:s > 0hs_small:∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)⊢ ∀ v ∈ S, (φ + s • ↑ψ) v + (b - s * u) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:s > 0hs_small:∀ v ∈ S \ σ, s * (ψ v - u) < w v - (φ v + b)⊢ φ x + b < (φ + s • ↑ψ) x + (b - s * u) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)⊢ φ x + b < φ x + s * ψ x + (b - s * u);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)⊢ ∀ v ∈ S, φ v + s * ψ v + (b - s * u) ≤ w v intro v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)v:Fin k → ℝhv:v ∈ S⊢ φ v + s * ψ v + (b - s * u) ≤ w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)v:Fin k → ℝhv:v ∈ Shvσ:v ∈ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)v:Fin k → ℝhv:v ∈ Shvσ:v ∉ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)v:Fin k → ℝhv:v ∈ Shvσ:v ∈ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)v:Fin k → ℝhv:v ∈ Shvσ:v ∉ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < sv:Fin k → ℝhs_small:∀ v ∈ S, v ∉ σ → s * ψ v - s * u < w v - (φ v + b)hv:v ∈ Shvσ:v ∉ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w v ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < sv:Fin k → ℝhs_small:∀ v ∈ S, v ∉ σ → s * ψ v - s * u < w v - (φ v + b)hv:v ∈ Shvσ:v ∈ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w v nlinarith [ hle v hv, Finset.mem_filter.mp hvσ, hψ.1 v ( subset_convexHull ℝ _ <| k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < sv:Fin k → ℝhs_small:∀ v ∈ S, v ∉ σ → s * ψ v - s * u < w v - (φ v + b)hv:v ∈ Shvσ:v ∈ σ⊢ v ∈ ↑σ All goals completed! 🐙 ) ];
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < sv:Fin k → ℝhs_small:∀ v ∈ S, v ∉ σ → s * ψ v - s * u < w v - (φ v + b)hv:v ∈ Shvσ:v ∉ σ⊢ φ v + s * ψ v + (b - s * u) ≤ w v All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vσ:Finset (Fin k → ℝ) := {v ∈ S | φ v + b = w v}hopt:x ∉ (convexHull ℝ) ↑σψ:(Fin k → ℝ) →L[ℝ] ℝu:ℝhψ:(∀ z ∈ (convexHull ℝ) ↑σ, ψ z < u) ∧ u < ψ xs:ℝhs_pos:0 < shs_small:∀ v ∈ S, v ∉ σ → s * (ψ v - u) < w v - (φ v + b)⊢ φ x + b < φ x + s * ψ x + (b - s * u) All goals completed! 🐙
Attainment. Among feasible affine functions, one maximizes the value at x. Lift
S to \mathbb R^{k+1} by v \mapsto (v, w(v)) and let T^\uparrow be the lifted
set. The set of points of \operatorname{conv}(T^\uparrow) lying over x (first k
coordinates equal to x) is nonempty (lift a convex representation of x) and
compact, so it contains a point p_0 of minimal last coordinate. Consider the convex
cone
\mathcal C \;:=\; \Bigl\{ \textstyle\sum_{z \in T^\uparrow} \lambda_z\,(z - p_0) \;:\; \lambda_z \ge 0 \Bigr\} \subseteq \mathbb R^{k+1}.
\mathcal C is closed: by a conic Carathéodory argument, every element of the cone
of a finite family is a nonnegative combination supported on a linearly independent
subfamily (if the active generators are dependent, slide along a linear relation among
them until one more coefficient hits zero, and repeat), so \mathcal C is a finite
union, over linearly independent subfamilies, of their cones, each of which is closed
(the coefficient-to-point map is an injective linear map between finite-dimensional
spaces, hence a closed embedding, and the nonnegative orthant is closed).
In Lean, closedness of the cone is Weyl's theorem, via conic Carathéodory:
/-- The conic hull of a *linearly independent* finite family of vectors is closed.
The coefficient map `c ↦ ∑ i, c i • b i` is an injective linear map between
finite-dimensional spaces, hence a closed embedding (antilipschitz); the nonnegative
orthant is closed, so its image (the cone) is closed. -/
lemma isClosed_cone_linearIndep {n : ℕ} {ι : Type*} [Fintype ι] (b : ι → (Fin n → ℝ))
(hb : LinearIndependent ℝ b) :
IsClosed {x : Fin n → ℝ | ∃ c : ι → ℝ, (∀ i, 0 ≤ c i) ∧ x = ∑ i, c i • b i} := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ b⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
classical
set L : (ι → ℝ) →ₗ[ℝ] (Fin n → ℝ) :=
{ toFun := fun c => ∑ i, c i • b i
map_add' := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ b⊢ ∀ (x y : ι → ℝ), ∑ i, (x + y) i • b i = ∑ i, x i • b i + ∑ i, y i • b i intro x n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bx:ι → ℝy:ι → ℝ⊢ ∑ i, (x + y) i • b i = ∑ i, x i • b i + ∑ i, y i • b i; All goals completed! 🐙
map_smul' := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ b⊢ ∀ (m : ℝ) (x : ι → ℝ), ∑ i, (m • x) i • b i = (RingHom.id ℝ) m • ∑ i, x i • b i intro r n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ br:ℝx:ι → ℝ⊢ ∑ i, (r • x) i • b i = (RingHom.id ℝ) r • ∑ i, x i • b i; All goals completed! 🐙 } with hLdef
have hLinj : Function.Injective L := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ b⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }⊢ ∀ (m : ι → ℝ), L m = 0 → m = 0
intro c n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }c:ι → ℝhc:L c = 0⊢ c = 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }c:ι → ℝhc:L c = 0this:∀ (i : ι), c i = 0⊢ c = 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }c:ι → ℝhc:L c = 0this:∀ (i : ι), c i = 0i:ι⊢ c i = 0 i; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑L⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑L⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑L⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
have horthant : IsClosed {c : ι → ℝ | ∀ i, 0 ≤ c i} := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ b⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
have : {c : ι → ℝ | ∀ i, 0 ≤ c i} = ⋂ i, {c : ι → ℝ | 0 ≤ c i} := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ b⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i} n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lc:ι → ℝ⊢ c ∈ {c | ∀ (i : ι), 0 ≤ c i} ↔ c ∈ ⋂ i, {c | 0 ≤ c i}; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lthis:{c | ∀ (i : ι), 0 ≤ c i} = ⋂ i, {c | 0 ≤ c i}⊢ IsClosed (⋂ i, {c | 0 ≤ c i}); All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})⊢ {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i} = ⇑L '' {c | ∀ (i : ι), 0 ≤ c i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})x:Fin n → ℝ⊢ x ∈ {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i} ↔ x ∈ ⇑L '' {c | ∀ (i : ι), 0 ≤ c i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})x:Fin n → ℝ⊢ (∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i) ↔ ∃ x_1, (∀ (i : ι), 0 ≤ x_1 i) ∧ L x_1 = x
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})x:Fin n → ℝ⊢ (∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i) → ∃ x_1, (∀ (i : ι), 0 ≤ x_1 i) ∧ L x_1 = xn:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})x:Fin n → ℝ⊢ (∃ x_1, (∀ (i : ι), 0 ≤ x_1 i) ∧ L x_1 = x) → ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})x:Fin n → ℝ⊢ (∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i) → ∃ x_1, (∀ (i : ι), 0 ≤ x_1 i) ∧ L x_1 = x n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})c:ι → ℝhc:∀ (i : ι), 0 ≤ c i⊢ ∃ x, (∀ (i : ι), 0 ≤ x i) ∧ L x = ∑ i, c i • b i; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})x:Fin n → ℝ⊢ (∃ x_1, (∀ (i : ι), 0 ≤ x_1 i) ∧ L x_1 = x) → ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhb:LinearIndependent ℝ bL:(ι → ℝ) →ₗ[ℝ] Fin n → ℝ := { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLdef:L = { toFun := fun c => ∑ i, c i • b i, map_add' := ⋯, map_smul' := ⋯ }hLinj:Function.Injective ⇑LK:NNRealhK0:K > 0hK:AntilipschitzWith K ⇑Lhuc:UniformContinuous ⇑Lhemb:Topology.IsClosedEmbedding ⇑Lhorthant:IsClosed {c | ∀ (i : ι), 0 ≤ c i}himg:IsClosed (⇑L '' {c | ∀ (i : ι), 0 ≤ c i})c:ι → ℝhc:∀ (i : ι), 0 ≤ c i⊢ ∃ c_1, (∀ (i : ι), 0 ≤ c_1 i) ∧ L c = ∑ i, c_1 i • b i; All goals completed! 🐙
/-- **Carathéodory for conic combinations.** Any element of the conic hull of a finite
family `b` is a nonnegative combination supported on a subset `s` for which the subfamily
`(b · : s → _)` is linearly independent. (If the support is dependent, take a nontrivial
linear relation among the active generators and slide along it until one more coefficient
hits `0`, strictly shrinking the support; iterate.) -/
lemma conicCaratheodory {n : ℕ} {ι : Type*} [Fintype ι] (b : ι → (Fin n → ℝ))
{x : Fin n → ℝ} (hx : ∃ c : ι → ℝ, (∀ i, 0 ≤ c i) ∧ x = ∑ i, c i • b i) :
∃ s : Finset ι, LinearIndependent ℝ (fun i : s => b i) ∧
∃ c : ι → ℝ, (∀ i, 0 ≤ c i) ∧ (∀ i, i ∉ s → c i = 0) ∧ x = ∑ i, c i • b i := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
classical
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝc:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = N⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:LinearIndependent ℝ fun i => b ↑i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b in:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:¬LinearIndependent ℝ fun i => b ↑i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:LinearIndependent ℝ fun i => b ↑i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:LinearIndependent ℝ fun i => b ↑i⊢ ∀ i ∉ {i | c i ≠ 0}, c i = 0
intro i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:LinearIndependent ℝ fun i => b ↑ii:ιhi:i ∉ {i | c i ≠ 0}⊢ c i = 0; n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:LinearIndependent ℝ fun i => b ↑ii:ιhi:c i = 0⊢ c i = 0; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b ihN:{i | c i ≠ 0}.card = Nh_lin_ind:¬LinearIndependent ℝ fun i => b ↑i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nh_lin_ind:¬LinearIndependent ℝ fun i => b ↑ihs₀:s₀ = {i | c i ≠ 0}⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nh_lin_ind:∃ g, ∑ i, g i • b ↑i = 0 ∧ ∃ i, g i ≠ 0hs₀:s₀ = {i | c i ≠ 0}⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
have hd0sum : ∑ i, d0 i • b i = 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
have hsub : ∑ i, d0 i • b i = ∑ i ∈ s₀, d0 i • b i :=
(Finset.sum_subset (Finset.subset_univ s₀) (fun i _ hi => n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0i:ιx✝:i ∈ Finset.univhi:i ∉ s₀⊢ d0 i • b i = 0 All goals completed! 🐙)).symm
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hsub:∑ i, d0 i • b i = ∑ i ∈ s₀, d0 i • b i⊢ ∑ x ∈ s₀.attach, d0 ↑x • b ↑x = ∑ i, g i • b ↑i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hsub:∑ i, d0 i • b i = ∑ i ∈ s₀, d0 i • b i⊢ ∀ x ∈ s₀.attach, d0 ↑x • b ↑x = g x • b ↑x
intro i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hsub:∑ i, d0 i • b i = ∑ i ∈ s₀, d0 i • b ii:↥s₀a✝:i ∈ s₀.attach⊢ d0 ↑i • b ↑i = g i • b ↑i; All goals completed! 🐙
have hd0supp : ∀ i, d0 i ≠ 0 → c i ≠ 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
intro i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0i:ιhi:d0 i ≠ 0⊢ c i ≠ 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0i:ιhi:d0 i ≠ 0hci:c i = 0⊢ False
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0i:ιhi:d0 i ≠ 0hci:c i = 0⊢ d0 i = 0; n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0i:ιhi:d0 i ≠ 0hci:c i = 0⊢ (if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0) = 0
have : i ∉ s₀ := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i All goals completed! 🐙
All goals completed! 🐙
have hd0ne : ∃ i, d0 i ≠ 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0⊢ d0 ↑j₀ ≠ 0; n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0⊢ g ⟨↑j₀, ⋯⟩ ≠ 0; All goals completed! 🐙
obtain ⟨d, hdsum, hdsupp, hdpos⟩ :
∃ d : ι → ℝ, (∑ i, d i • b i = 0) ∧ (∀ i, d i ≠ 0 → c i ≠ 0) ∧ (∃ i, d i > 0) := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0hp:∃ i, d0 i > 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0hp:¬∃ i, d0 i > 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0hp:∃ i, d0 i > 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0 All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0hp:¬∃ i, d0 i > 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0 n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0hp:∀ (i : ι), d0 i ≤ 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hp:∀ (i : ι), d0 i ≤ 0i:ιhi:d0 i ≠ 0⊢ ∃ d, ∑ i, d i • b i = 0 ∧ (∀ (i : ι), d i ≠ 0 → c i ≠ 0) ∧ ∃ i, d i > 0
refine ⟨-d0, n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hp:∀ (i : ι), d0 i ≤ 0i:ιhi:d0 i ≠ 0⊢ ∑ i, (-d0) i • b i = 0 All goals completed! 🐙, fun i h => hd0supp i (n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hp:∀ (i : ι), d0 i ≤ 0i✝:ιhi:d0 i ≠ 0i:ιh:(-d0) i ≠ 0⊢ d0 i ≠ 0 All goals completed! 🐙), ⟨i, ?_⟩⟩
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hp:∀ (i : ι), d0 i ≤ 0i:ιhi:d0 i ≠ 0this:d0 i < 0⊢ (-d0) i > 0
All goals completed! 🐙
obtain ⟨i₀, hi₀pos, hi₀min⟩ : ∃ i₀, d i₀ > 0 ∧ ∀ i, d i > 0 → c i₀ / d i₀ ≤ c i / d i := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0⊢ ∃ i₀, d i₀ > 0 ∧ ∀ (i : ι), d i > 0 → c i₀ / d i₀ ≤ c i / d i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0ip:ιhip:d ip > 0⊢ ∃ i₀, d i₀ > 0 ∧ ∀ (i : ι), d i > 0 → c i₀ / d i₀ ≤ c i / d i
obtain ⟨i₀, hi₀mem, hi₀le⟩ := Finset.exists_min_image (Finset.univ.filter fun i => d i > 0)
(fun i => c i / d i) ⟨ip, n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0ip:ιhip:d ip > 0⊢ ip ∈ {i | d i > 0} All goals completed! 🐙⟩
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0ip:ιhip:d ip > 0i₀:ιhi₀le:∀ x' ∈ {i | d i > 0}, c i₀ / d i₀ ≤ c x' / d x'hi₀mem:d i₀ > 0⊢ ∃ i₀, d i₀ > 0 ∧ ∀ (i : ι), d i > 0 → c i₀ / d i₀ ≤ c i / d i
exact ⟨i₀, hi₀mem, fun i hi => hi₀le i (n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0ip:ιhip:d ip > 0i₀:ιhi₀le:∀ x' ∈ {i | d i > 0}, c i₀ / d i₀ ≤ c x' / d x'hi₀mem:d i₀ > 0i:ιhi:d i > 0⊢ i ∈ {i | d i > 0} All goals completed! 🐙)⟩
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lam⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
have hc'nonneg : ∀ i, 0 ≤ c' i := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ι⊢ 0 ≤ c' i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i > 0⊢ 0 ≤ c' in:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:¬d i > 0⊢ 0 ≤ c' i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i > 0⊢ 0 ≤ c' i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i > 0hmin:lam ≤ c i / d i⊢ 0 ≤ c' i
have h2 : lam * d i ≤ c i := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i > 0hmin:lam * d i ≤ c i⊢ lam * d i ≤ c i; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i > 0hmin:lam ≤ c i / d ih2:lam * d i ≤ c i⊢ 0 ≤ c i - lam * d i; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:¬d i > 0⊢ 0 ≤ c' i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i ≤ 0⊢ 0 ≤ c' i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i ≤ 0this:lam * d i ≤ 0⊢ 0 ≤ c' i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ii:ιhi:d i ≤ 0this:lam * d i ≤ 0⊢ 0 ≤ c i - lam * d i; All goals completed! 🐙
have hc'i0 : c' i₀ = 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' i⊢ c i₀ - lam * d i₀ = 0; n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' i⊢ c i₀ - c i₀ = 0; All goals completed! 🐙
have hc'sum : ∑ i, c' i • b i = x := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
have heq : ∑ i, c' i • b i = (∑ i, c i • b i) - lam • (∑ i, d i • b i) := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
All goals completed! 🐙
All goals completed! 🐙
have hsupp : (Finset.univ.filter fun i => c' i ≠ 0).card < N := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0}.card < s₀.card
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0} ⊂ s₀
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0} ⊆ s₀ ∧ {i | c' i ≠ 0} ≠ s₀
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0} ⊆ s₀n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0} ≠ s₀
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0} ⊆ s₀ intro i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xi:ιhi:i ∈ {i | c' i ≠ 0}⊢ i ∈ s₀
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xi:ιhi:i ∈ {i | c' i ≠ 0}⊢ i ∈ {i | c i ≠ 0}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xi:ιhi:c' i ≠ 0⊢ c i ≠ 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xi:ιhi:c' i ≠ 0hci:c i = 0⊢ False
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xi:ιhi:c' i ≠ 0hci:c i = 0⊢ c' i = 0
have hdi : d i = 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xi:ιhi:c' i ≠ 0hci:c i = 0h:¬d i = 0⊢ False; All goals completed! 🐙
All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = x⊢ {i | c' i ≠ 0} ≠ s₀ n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xhcontra:{i | c' i ≠ 0} = s₀⊢ False
have hi₀in : i₀ ∈ Finset.univ.filter fun i => c i ≠ 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xhcontra:{i | c' i ≠ 0} = s₀⊢ c i₀ ≠ 0
All goals completed! 🐙
have hi₀out : i₀ ∉ Finset.univ.filter fun i => c' i ≠ 0 := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b i
All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝN:ℕih:∀ m < N,
∀ (c : ι → ℝ),
(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i →
{i | c i ≠ 0}.card = m →
∃ s, (LinearIndependent ℝ fun i => b ↑i) ∧ ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ (∀ i ∉ s, c i = 0) ∧ x = ∑ i, c i • b ic:ι → ℝhc:(∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is₀:Finset ι := {i | c i ≠ 0}hN:s₀.card = Nhs₀:s₀ = {i | c i ≠ 0}g:↥s₀ → ℝhgsum:∑ i, g i • b ↑i = 0j₀:↥s₀hj₀:g j₀ ≠ 0d0:ι → ℝ := fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0:d0 = fun i => if hi : i ∈ s₀ then g ⟨i, hi⟩ else 0hd0sum:∑ i, d0 i • b i = 0hd0supp:∀ (i : ι), d0 i ≠ 0 → c i ≠ 0hd0ne:∃ i, d0 i ≠ 0d:ι → ℝhdsum:∑ i, d i • b i = 0hdsupp:∀ (i : ι), d i ≠ 0 → c i ≠ 0hdpos:∃ i, d i > 0i₀:ιhi₀pos:d i₀ > 0lam:ℝ := c i₀ / d i₀hi₀min:∀ (i : ι), d i > 0 → lam ≤ c i / d ihlam:lam = c i₀ / d i₀hlam0:0 ≤ lamc':ι → ℝ := fun i => c i - lam * d ihc':c' = fun i => c i - lam * d ihc'nonneg:∀ (i : ι), 0 ≤ c' ihc'i0:c' i₀ = 0hc'sum:∑ i, c' i • b i = xhcontra:{i | c' i ≠ 0} = s₀hi₀in:i₀ ∈ {i | c i ≠ 0}hi₀out:i₀ ∉ s₀⊢ False
All goals completed! 🐙
All goals completed! 🐙
/-- **Weyl: the conic hull of a finite family of vectors is closed.**
It is the finite union, over the (finitely many) linearly independent subsets `s`, of the
conic hulls of the subfamilies, each closed by `isClosed_cone_linearIndep`. -/
lemma isClosed_conicHull {n : ℕ} {ι : Type*} [Fintype ι] (b : ι → (Fin n → ℝ)) :
IsClosed {x : Fin n → ℝ | ∃ c : ι → ℝ, (∀ i, 0 ≤ c i) ∧ x = ∑ i, c i • b i} := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝ⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
classical
have hset : {x : Fin n → ℝ | ∃ c : ι → ℝ, (∀ i, 0 ≤ c i) ∧ x = ∑ i, c i • b i}
= ⋃ s ∈ {s : Finset ι | LinearIndependent ℝ (fun i : s => b i)},
{x : Fin n → ℝ | ∃ c : ↥s → ℝ, (∀ i, 0 ≤ c i) ∧ x = ∑ i, c i • b i} := n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝ⊢ IsClosed {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝ⊢ x ∈ {x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i} ↔
x ∈ ⋃ s ∈ {s | LinearIndependent ℝ fun i => b ↑i}, {x | ∃ c, (∀ (i : ↥s), 0 ≤ c i) ∧ x = ∑ i, c i • b ↑i}
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝ⊢ (∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i) ↔
∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝ⊢ (∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i) →
∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝ⊢ (∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1) →
∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝ⊢ (∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i) →
∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1 n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i⊢ ∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b i⊢ ∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b i⊢ x = ∑ i, (fun i => c ↑i) i • b ↑i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b i⊢ ∑ x ∈ s, c x • b x = ∑ i, (fun i => c ↑i) i • b ↑in:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b i⊢ ∀ x ∈ Finset.univ, x ∉ s → c x • b x = 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b i⊢ ∑ x ∈ s, c x • b x = ∑ i, (fun i => c ↑i) i • b ↑i All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b i⊢ ∀ x ∈ Finset.univ, x ∉ s → c x • b x = 0 intro i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b ii:ιa✝:i ∈ Finset.univ⊢ i ∉ s → c i • b i = 0 n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝhx:∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b is:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:ι → ℝhc:∀ (i : ι), 0 ≤ c ihzero:∀ i ∉ s, c i = 0hsum:x = ∑ i, c i • b ii:ιa✝:i ∈ Finset.univhi:i ∉ s⊢ c i • b i = 0; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝx:Fin n → ℝ⊢ (∃ i, (LinearIndependent ℝ fun i_1 => b ↑i_1) ∧ ∃ c, (∀ (i : ↥i), 0 ≤ c i) ∧ x = ∑ i_1, c i_1 • b ↑i_1) →
∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c i⊢ ∃ c_1, (∀ (i : ι), 0 ≤ c_1 i) ∧ ∑ i, c i • b ↑i = ∑ i, c_1 i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ι⊢ 0 ≤ (fun i => if h : i ∈ s then c ⟨i, h⟩ else 0) in:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c i⊢ ∑ i, c i • b ↑i = ∑ i, (fun i => if h : i ∈ s then c ⟨i, h⟩ else 0) i • b i
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ι⊢ 0 ≤ (fun i => if h : i ∈ s then c ⟨i, h⟩ else 0) i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ι⊢ 0 ≤ if h : i ∈ s then c ⟨i, h⟩ else 0; n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ιh:i ∈ s⊢ 0 ≤ c ⟨i, h⟩n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ιh:i ∉ s⊢ 0 ≤ 0
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ιh:i ∈ s⊢ 0 ≤ c ⟨i, h⟩ All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:ιh:i ∉ s⊢ 0 ≤ 0 All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c i⊢ ∑ i, c i • b ↑i = ∑ i, (fun i => if h : i ∈ s then c ⟨i, h⟩ else 0) i • b i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c i⊢ ∑ i, c i • b ↑i = ∑ x ∈ s, (if h : x ∈ s then c ⟨x, h⟩ else 0) • b x
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c i⊢ ∑ i, c i • b ↑i = ∑ x ∈ s.attach, (if h : ↑x ∈ s then c ⟨↑x, h⟩ else 0) • b ↑x
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c i⊢ ∀ x ∈ Finset.univ, c x • b ↑x = (if h : ↑x ∈ s then c ⟨↑x, h⟩ else 0) • b ↑x; intro i n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝs:Finset ιhs:LinearIndependent ℝ fun i => b ↑ic:↥s → ℝhc:∀ (i : ↥s), 0 ≤ c ii:↥sa✝:i ∈ Finset.univ⊢ c i • b ↑i = (if h : ↑i ∈ s then c ⟨↑i, h⟩ else 0) • b ↑i; All goals completed! 🐙
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhset:{x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i} =
⋃ s ∈ {s | LinearIndependent ℝ fun i => b ↑i}, {x | ∃ c, (∀ (i : ↥s), 0 ≤ c i) ∧ x = ∑ i, c i • b ↑i}⊢ IsClosed (⋃ s ∈ {s | LinearIndependent ℝ fun i => b ↑i}, {x | ∃ c, (∀ (i : ↥s), 0 ≤ c i) ∧ x = ∑ i, c i • b ↑i})
n:ℕι:Type u_1inst✝:Fintype ιb:ι → Fin n → ℝhset:{x | ∃ c, (∀ (i : ι), 0 ≤ c i) ∧ x = ∑ i, c i • b i} =
⋃ s ∈ {s | LinearIndependent ℝ fun i => b ↑i}, {x | ∃ c, (∀ (i : ↥s), 0 ≤ c i) ∧ x = ∑ i, c i • b ↑i}hfin:{s | LinearIndependent ℝ fun i => b ↑i}.Finite⊢ IsClosed (⋃ s ∈ {s | LinearIndependent ℝ fun i => b ↑i}, {x | ∃ c, (∀ (i : ↥s), 0 ≤ c i) ∧ x = ∑ i, c i • b ↑i})
All goals completed! 🐙
The downward vertical vector -e_{k+1} does not lie in \mathcal C: if
-e_{k+1} = \sum_z \lambda_z (z - p_0) with \lambda \ge 0 and total mass
m := \sum_z \lambda_z, then either m = 0, forcing all \lambda_z = 0 and
-e_{k+1} = 0, absurd; or m > 0, and then
z_0 := \tfrac1m \sum_z \lambda_z z \in \operatorname{conv}(T^\uparrow) satisfies
z_0 = p_0 - \tfrac1m e_{k+1}: a point of \operatorname{conv}(T^\uparrow) over x
with strictly smaller last coordinate than p_0, contradicting minimality.
By the separation theorem for a closed convex set and a point, there is a linear
functional \Phi on \mathbb R^{k+1} and u \in \mathbb R with \Phi < u on
\mathcal C and \Phi(-e_{k+1}) > u. Since 0 \in \mathcal C, u > 0; and since
\mathcal C is a cone bounded above by u under \Phi, in fact \Phi \le 0 on
\mathcal C (a point of the cone with positive \Phi-value could be scaled up until
its value exceeds u). In particular c := \Phi(e_{k+1}) < -u < 0, and
\Phi(z - p_0) \le 0 for every lifted vertex z, hence — by linearity and
convexity — \Phi \le \Phi(p_0) on all of \operatorname{conv}(T^\uparrow).
Write \Phi(z) = G(z_1, \dots, z_k) + c\,z_{k+1} with G linear on \mathbb R^k.
Rescaling by -1/c > 0 and rearranging, the affine function
\ell^\ast := -\tfrac1c\,\bigl(G - \Phi(p_0)\bigr) on \mathbb R^k satisfies
\ell^\ast(v) \le w(v) for every v \in S (apply \Phi \le \Phi(p_0) at the lifted
vertex (v, w(v))) and \ell^\ast(x) = (last coordinate of p_0) (apply it at
p_0, whose first k coordinates are x). Moreover every feasible \ell
satisfies \ell(x) \le (last coordinate of p_0): for any convex representation
x = \sum_v \mu_v v with the v in S, feasibility gives
\ell(x) = \sum_v \mu_v \ell(v) \le \sum_v \mu_v w(v); the sums
\sum_v \mu_v w(v), over all such representations, are exactly the last coordinates
of the points of \operatorname{conv}(T^\uparrow) over x, and the minimum of those
is the last coordinate of p_0. So \ell^\ast is optimal.
/-- **Supporting hyperplane at a lower-boundary point.** If `p₀` lies in the convex hull of
a finite set `T ⊆ ℝ^{k+1}` and minimizes the last coordinate among all points of that hull
with the same first-`k` coordinates, then there is a linear functional `F` supported at `p₀`
(`F z ≤ F p₀` on the hull) with strictly negative last component. -/
lemma exists_lower_support (T : Finset (Fin (k+1) → ℝ)) (p₀ : Fin (k+1) → ℝ)
(hp₀ : p₀ ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)))
(hmin : ∀ p ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)),
Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)) :
∃ F : (Fin (k+1) → ℝ) →ₗ[ℝ] ℝ,
(∀ z ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)), F z ≤ F p₀) ∧
F (Pi.single (Fin.last k) 1) < 0 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
classical
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed K⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
have hKconv : Convex ℝ K := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed Kcx:↥T → ℝhcx:∀ (i : ↥T), 0 ≤ cx icy:↥T → ℝhcy:∀ (i : ↥T), 0 ≤ cy ia:ℝc:ℝha:0 ≤ ahc:0 ≤ chac:a + c = 1⊢ a • ∑ i, cx i • b i + c • ∑ i, cy i • b i ∈ K
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed Kcx:↥T → ℝhcx:∀ (i : ↥T), 0 ≤ cx icy:↥T → ℝhcy:∀ (i : ↥T), 0 ≤ cy ia:ℝc:ℝha:0 ≤ ahc:0 ≤ chac:a + c = 1⊢ a • ∑ i, cx i • b i + c • ∑ i, cy i • b i = ∑ i, (fun i => a * cx i + c * cy i) i • b i
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed Kcx:↥T → ℝhcx:∀ (i : ↥T), 0 ≤ cx icy:↥T → ℝhcy:∀ (i : ↥T), 0 ≤ cy ia:ℝc:ℝha:0 ≤ ahc:0 ≤ chac:a + c = 1⊢ ∑ x, (a • cx x • b x + c • cy x • b x) = ∑ i, (fun i => a * cx i + c * cy i) i • b i
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed Kcx:↥T → ℝhcx:∀ (i : ↥T), 0 ≤ cx icy:↥T → ℝhcy:∀ (i : ↥T), 0 ≤ cy ia:ℝc:ℝha:0 ≤ ahc:0 ≤ chac:a + c = 1⊢ ∀ x ∈ Finset.univ, a • cx x • b x + c • cy x • b x = (fun i => a * cx i + c * cy i) x • b x; intro i k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed Kcx:↥T → ℝhcx:∀ (i : ↥T), 0 ≤ cx icy:↥T → ℝhcy:∀ (i : ↥T), 0 ≤ cy ia:ℝc:ℝha:0 ≤ ahc:0 ≤ chac:a + c = 1i:↥Ta✝:i ∈ Finset.univ⊢ a • cx i • b i + c • cy i • b i = (fun i => a * cx i + c * cy i) i • b i
All goals completed! 🐙
have h0K : (0 : Fin (k+1) → ℝ) ∈ K := ⟨0, fun i => le_refl 0, k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ K⊢ 0 = ∑ i, 0 i • b i All goals completed! 🐙⟩
have hgenK : ∀ i : ↥T, b i ∈ K := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥T⊢ b i ∈ K
refine ⟨fun j => if j = i then 1 else 0, fun j => k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥Tj:↥T⊢ 0 ≤ (fun j => if j = i then 1 else 0) j k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥Tj:↥T⊢ 0 ≤ if j = i then 1 else 0; k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥Tj:↥Th✝:j = i⊢ 0 ≤ 1k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥Tj:↥Th✝:¬j = i⊢ 0 ≤ 0 k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥Tj:↥Th✝:j = i⊢ 0 ≤ 1k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ Ki:↥Tj:↥Th✝:¬j = i⊢ 0 ≤ 0 All goals completed! 🐙, ?_⟩
All goals completed! 🐙
have hscale : ∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ K := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Kl:ℝhl:0 ≤ lcz:↥T → ℝhcz:∀ (i : ↥T), 0 ≤ cz i⊢ l • ∑ i, cz i • b i ∈ K
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Kl:ℝhl:0 ≤ lcz:↥T → ℝhcz:∀ (i : ↥T), 0 ≤ cz i⊢ l • ∑ i, cz i • b i = ∑ i, (fun i => l * cz i) i • b i
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Kl:ℝhl:0 ≤ lcz:↥T → ℝhcz:∀ (i : ↥T), 0 ≤ cz i⊢ ∑ x, l • cz x • b x = ∑ i, (fun i => l * cz i) i • b i; k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Kl:ℝhl:0 ≤ lcz:↥T → ℝhcz:∀ (i : ↥T), 0 ≤ cz i⊢ ∀ x ∈ Finset.univ, l • cz x • b x = (fun i => l * cz i) x • b x; intro i k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Kl:ℝhl:0 ≤ lcz:↥T → ℝhcz:∀ (i : ↥T), 0 ≤ cz ii:↥Ta✝:i ∈ Finset.univ⊢ l • cz i • b i = (fun i => l * cz i) i • b i; All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F e < 0
have heinit : ∀ i : Fin k, e i.castSucc = 0 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1i:Fin k⊢ e i.castSucc = 0; All goals completed! 🐙
have helast : e (Fin.last k) = 1 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0 All goals completed! 🐙
have hne0 : e ≠ 0 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0 k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1h:e = 0⊢ False; k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1h:e = 0this:e (Fin.last k) = 1⊢ False; k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1h:e = 0this:0 (Fin.last k) = 1⊢ False; All goals completed! 🐙
have hneg : -e ∉ K := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b i⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c i⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ M⊢ False
have hsum' : -e = ∑ i, c i • (i:Fin (k+1)→ℝ) - M • p₀ := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ M⊢ ∑ i, c i • b i = ∑ i, c i • ↑i - M • p₀; All goals completed! 🐙
have hkey : ∑ i, c i • (i : Fin (k+1) → ℝ) = M • p₀ - e := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
linear_combination (norm := All goals completed! 🐙) -hsum'
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = M⊢ Falsek:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < M⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = M⊢ False have hczero : ∀ i, c i = 0 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = Mi:↥T⊢ c i = 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = Mi:↥Th:¬c i = 0⊢ False
have : 0 < M := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = Mi:↥Th:¬c i = 0⊢ 0 < ∑ i, c i; All goals completed! 🐙
All goals completed! 🐙
exact hne0 (neg_eq_zero.mp (k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = Mhczero:∀ (i : ↥T), c i = 0⊢ -e = 0 k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehM0:0 = Mhczero:∀ (i : ↥T), c i = 0⊢ ∑ i, c i • b i = 0; All goals completed! 🐙))
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < M⊢ False k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑i⊢ False
have hzconv : z ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)) := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
have h := Finset.centerMass_mem_convexHull (R := ℝ) (Finset.univ)
(w := fun i : ↥T => c i) (fun i _ => hc i) (k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑i⊢ 0 < ∑ i, (fun i => c i) i k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑i⊢ 0 < M; All goals completed! 🐙)
(z := fun i : ↥T => (i : Fin (k+1) → ℝ)) (fun i _ => i.2)
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ih:(∑ i, c i)⁻¹ • ∑ i, c i • ↑i ∈ (convexHull ℝ) ↑T⊢ z ∈ (convexHull ℝ) ↑T
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ih:M⁻¹ • ∑ i, c i • ↑i ∈ (convexHull ℝ) ↑T⊢ z ∈ (convexHull ℝ) ↑T
All goals completed! 🐙
have hzeq : z = p₀ - M⁻¹ • e := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
All goals completed! 🐙
have hinit : Fin.init z = Fin.init p₀ := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ihzconv:z ∈ (convexHull ℝ) ↑Thzeq:z = p₀ - M⁻¹ • ei:Fin k⊢ Fin.init z i = Fin.init p₀ i
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ihzconv:z ∈ (convexHull ℝ) ↑Thzeq:z = p₀ - M⁻¹ • ei:Fin k⊢ Fin.init (p₀ - M⁻¹ • e) i = Fin.init p₀ i; All goals completed! 🐙
have hlast : z (Fin.last k) < p₀ (Fin.last k) := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ihzconv:z ∈ (convexHull ℝ) ↑Thzeq:z = p₀ - M⁻¹ • ehinit:Fin.init z = Fin.init p₀⊢ (p₀ - M⁻¹ • e) (Fin.last k) < p₀ (Fin.last k); k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ihzconv:z ∈ (convexHull ℝ) ↑Thzeq:z = p₀ - M⁻¹ • ehinit:Fin.init z = Fin.init p₀⊢ p₀ (Fin.last k) - M⁻¹ < p₀ (Fin.last k)
have : 0 < M⁻¹ := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0 All goals completed! 🐙
All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0c:↥T → ℝhc:∀ (i : ↥T), 0 ≤ c ihsum:-e = ∑ i, c i • b iM:ℝ := ∑ i, c ihM:M = ∑ i, c ihMnn:0 ≤ Mhsum':-e = ∑ i, c i • ↑i - M • p₀hkey:∑ i, c i • ↑i = M • p₀ - ehMpos:0 < Mz:Fin (k + 1) → ℝ := M⁻¹ • ∑ i, c i • ↑ihz:z = M⁻¹ • ∑ i, c i • ↑ihzconv:z ∈ (convexHull ℝ) ↑Thzeq:z = p₀ - M⁻¹ • ehinit:Fin.init z = Fin.init p₀hlast:z (Fin.last k) < p₀ (Fin.last k)this:p₀ (Fin.last k) ≤ z (Fin.last k)⊢ False
All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F e < 0
have hu0 : 0 < u := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0 k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)this:f 0 < u⊢ 0 < u; All goals completed! 🐙
have hfle : ∀ z ∈ K, f z ≤ 0 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
intro z k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ K⊢ f z ≤ 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:¬f z ≤ 0⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:0 < f z⊢ False
have hlz : ((u+1)/ f z) • z ∈ K := hscale _ (k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:0 < f z⊢ 0 ≤ (u + 1) / f z All goals completed! 🐙) z hz
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:0 < f zhlz:((u + 1) / f z) • z ∈ Kthis:f (((u + 1) / f z) • z) < u⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:0 < f zhlz:((u + 1) / f z) • z ∈ Kthis:((u + 1) / f z) • f z < u⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:0 < f zhlz:((u + 1) / f z) • z ∈ Kthis:(u + 1) / f z * f z < u⊢ False
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uz:Fin (k + 1) → ℝhz:z ∈ Kh:0 < f zhlz:((u + 1) / f z) • z ∈ Kthis:u + 1 < u⊢ False
All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0⊢ ∀ z ∈ (convexHull ℝ) ↑T, ↑f z ≤ ↑f p₀k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0⊢ ↑f e < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0⊢ ∀ z ∈ (convexHull ℝ) ↑T, ↑f z ≤ ↑f p₀ intro z k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑T⊢ ↑f z ≤ ↑f p₀
have hzK : z - p₀ ∈ K := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
have h1 : z - p₀ ∈ convexHull ℝ (Set.range b) := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
set g : (Fin (k+1) → ℝ) →ᵃ[ℝ] (Fin (k+1) → ℝ) :=
{ toFun := fun y => y - p₀
linear := LinearMap.id
map_vadd' := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑T⊢ ∀ (p v : Fin (k + 1) → ℝ), (v +ᵥ p) - p₀ = LinearMap.id v +ᵥ p - p₀ intro p k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tp:Fin (k + 1) → ℝv:Fin (k + 1) → ℝ⊢ (v +ᵥ p) - p₀ = LinearMap.id v +ᵥ p - p₀; k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tp:Fin (k + 1) → ℝv:Fin (k + 1) → ℝ⊢ v + p - p₀ = v + (p - p₀); All goals completed! 🐙 } with hg
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ ⇑g '' (convexHull ℝ) ↑T⊢ z - p₀ ∈ (convexHull ℝ) (range b)
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)⊢ z - p₀ ∈ (convexHull ℝ) (range b)
have h2 : g '' (T : Set (Fin (k+1) → ℝ)) = Set.range b := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)w:Fin (k + 1) → ℝ⊢ w ∈ ⇑g '' ↑T ↔ w ∈ range b
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)w:Fin (k + 1) → ℝ⊢ (∃ x ∈ T, x - p₀ = w) ↔ ∃ y, ↑y - p₀ = w
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)w:Fin (k + 1) → ℝ⊢ (∃ x ∈ T, x - p₀ = w) → ∃ y, ↑y - p₀ = wk:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)w:Fin (k + 1) → ℝ⊢ (∃ y, ↑y - p₀ = w) → ∃ x ∈ T, x - p₀ = w
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)w:Fin (k + 1) → ℝ⊢ (∃ x ∈ T, x - p₀ = w) → ∃ y, ↑y - p₀ = w k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)y:Fin (k + 1) → ℝhy:y ∈ T⊢ ∃ y_1, ↑y_1 - p₀ = y - p₀; All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)w:Fin (k + 1) → ℝ⊢ (∃ y, ↑y - p₀ = w) → ∃ x ∈ T, x - p₀ = w k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (⇑g '' ↑T)i:↥T⊢ ∃ x ∈ T, x - p₀ = ↑i - p₀; All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Tg:(Fin (k + 1) → ℝ) →ᵃ[ℝ] Fin (k + 1) → ℝ := { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hg:g = { toFun := fun y => y - p₀, linear := LinearMap.id, map_vadd' := ⋯ }hh1:g z ∈ (convexHull ℝ) (range b)h2:⇑g '' ↑T = range b⊢ z - p₀ ∈ (convexHull ℝ) (range b); All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Th1:z - p₀ ∈ (convexHull ℝ) (range b)⊢ range b ⊆ K
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑Th1:z - p₀ ∈ (convexHull ℝ) (range b)i:↥T⊢ b i ∈ K; All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑ThzK:z - p₀ ∈ Kthis:f (z - p₀) ≤ 0⊢ ↑f z ≤ ↑f p₀
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑ThzK:z - p₀ ∈ Kthis:f (z - p₀) ≤ 0⊢ f z ≤ f p₀
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑ThzK:z - p₀ ∈ Kthis:f z - f p₀ ≤ 0⊢ f z ≤ f p₀; All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0⊢ ↑f e < 0 have : f (-e) > 0 := k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0 All goals completed! 🐙
k:ℕT:Finset (Fin (k + 1) → ℝ)p₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑Thmin:∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k)b:↥T → Fin (k + 1) → ℝ := fun i => ↑i - p₀hb:b = fun i => ↑i - p₀K:Set (Fin (k + 1) → ℝ) := {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hK:K = {x | ∃ c, (∀ (i : ↥T), 0 ≤ c i) ∧ x = ∑ i, c i • b i}hKclosed:IsClosed KhKconv:Convex ℝ Kh0K:0 ∈ KhgenK:∀ (i : ↥T), b i ∈ Khscale:∀ (l : ℝ), 0 ≤ l → ∀ z ∈ K, l • z ∈ Ke:Fin (k + 1) → ℝ := Pi.single (Fin.last k) 1he:e = Pi.single (Fin.last k) 1heinit:∀ (i : Fin k), e i.castSucc = 0helast:e (Fin.last k) = 1hne0:e ≠ 0hneg:-e ∉ Kf:StrongDual ℝ (Fin (k + 1) → ℝ)u:ℝhfK:∀ a ∈ K, f a < uhfe:u < f (-e)hu0:0 < uhfle:∀ z ∈ K, f z ≤ 0this:-f e > 0⊢ ↑f e < 0
All goals completed! 🐙
/-
**LP attainment.** Among all feasible affine functions `ℓ ≤ w` on `S`, there is one
maximizing `ℓ x`.
-/
lemma exists_optimal_supporting
(w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
{x : Fin k → ℝ} (hx : x ∈ convexHull ℝ (S : Set (Fin k → ℝ))) :
∃ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) ∧
(∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ),
(∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑S⊢ ∃ φ b,
(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ), (∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'⊢ False;
-- Let $T := S.image (fun v => Fin.snoc v (w v))$ in $Fin (k+1) → ℝ$.
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ False;
obtain ⟨p₀, hp₀⟩ : ∃ p₀ ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)), Fin.init p₀ = x ∧ ∀ p ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ ∃ p₀ ∈ (convexHull ℝ) ↑T, Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)
have h_compact : IsCompact {p ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)) | Fin.init p = x} := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ ∃ p₀ ∈ (convexHull ℝ) ↑T, Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ IsCompact ((convexHull ℝ) ↑T)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ IsClosed fun p => Fin.init p = x;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ IsCompact ((convexHull ℝ) ↑T) All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ IsClosed fun p => Fin.init p = x All goals completed! 🐙;
have h_nonempty : {p ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)) | Fin.init p = x}.Nonempty := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ ∃ p₀ ∈ (convexHull ℝ) ↑T, Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)
have h_image : Fin.init '' (convexHull ℝ (T : Set (Fin (k+1) → ℝ))) = convexHull ℝ (S : Set (Fin k → ℝ)) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ ∃ p₀ ∈ (convexHull ℝ) ↑T, Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)
have h_image : Fin.init '' (convexHull ℝ (T : Set (Fin (k+1) → ℝ))) = convexHull ℝ (Fin.init '' (T : Set (Fin (k+1) → ℝ))) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) S⊢ ∃ p₀ ∈ (convexHull ℝ) ↑T, Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ Fin.init '' (convexHull ℝ) ↑T ⊆ (convexHull ℝ) (Fin.init '' ↑T)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ (convexHull ℝ) (Fin.init '' ↑T) ⊆ Fin.init '' (convexHull ℝ) ↑T;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ Fin.init '' (convexHull ℝ) ↑T ⊆ (convexHull ℝ) (Fin.init '' ↑T) intro p k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}p:Fin k → ℝhp:p ∈ Fin.init '' (convexHull ℝ) ↑T⊢ p ∈ (convexHull ℝ) (Fin.init '' ↑T)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}q:Fin (k + 1) → ℝhq:q ∈ (convexHull ℝ) ↑T⊢ Fin.init q ∈ (convexHull ℝ) (Fin.init '' ↑T)
exact (k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}q:Fin (k + 1) → ℝhq:q ∈ (convexHull ℝ) ↑T⊢ Fin.init q ∈ (convexHull ℝ) (Fin.init '' ↑T)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}q:Fin (k + 1) → ℝhq:q ∈ {x | ∃ ι t w z, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ (∀ i ∈ t, z i ∈ ↑T) ∧ t.centerMass w z = x}⊢ Fin.init q ∈
{x | ∃ ι t w z, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ (∀ i ∈ t, z i ∈ Fin.init '' ↑T) ∧ t.centerMass w z = x};
k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}ι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝhw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, z i ∈ ↑T⊢ Fin.init (t.centerMass w z) ∈
{x | ∃ ι t w z, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ (∀ i ∈ t, z i ∈ Fin.init '' ↑T) ∧ t.centerMass w z = x}; k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}ι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝhw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, z i ∈ ↑T⊢ (∀ i ∈ t, 0 ≤ w i) ∧
∑ i ∈ t, w i = 1 ∧
(∀ i ∈ t, (fun i => Fin.init (z i)) i ∈ Fin.init '' ↑T) ∧
(t.centerMass w fun i => Fin.init (z i)) = Fin.init (t.centerMass w z) ; k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}hw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, ∃ x ∈ S, Fin.snoc x (w✝ x) = z i⊢ (∀ i ∈ t, Fin.init (z i) ∈ S) ∧ ∑ x ∈ t, w x • Fin.init (z x) = Fin.init (∑ i ∈ t, w i • z i) ;
exact ⟨ fun i hi => k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}hw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, ∃ x ∈ S, Fin.snoc x (w✝ x) = z ii:ιhi:i ∈ t⊢ Fin.init (z i) ∈ S k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}hw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, ∃ x ∈ S, Fin.snoc x (w✝ x) = z ii:ιhi:i ∈ tx:Fin k → ℝhx:x ∈ Shx':Fin.snoc x (w✝ x) = z i⊢ Fin.init (z i) ∈ S; All goals completed! 🐙, k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}hw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, ∃ x ∈ S, Fin.snoc x (w✝ x) = z i⊢ ∑ x ∈ t, w x • Fin.init (z x) = Fin.init (∑ i ∈ t, w i • z i) k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sι:Typet:Finset ιw:ι → ℝz:ι → Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}hw:∀ i ∈ t, 0 ≤ w ihw':∑ i ∈ t, w i = 1hz:∀ i ∈ t, ∃ x ∈ S, Fin.snoc x (w✝ x) = z ii:Fin k⊢ (∑ x ∈ t, w x • Fin.init (z x)) i = Fin.init (∑ i ∈ t, w i • z i) i; All goals completed! 🐙 ⟩);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ (convexHull ℝ) (Fin.init '' ↑T) ⊆ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ Fin.init '' ↑T ⊆ Fin.init '' (convexHull ℝ) ↑Tk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ Convex ℝ (Fin.init '' (convexHull ℝ) ↑T);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ Fin.init '' ↑T ⊆ Fin.init '' (convexHull ℝ) ↑T All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}⊢ Convex ℝ (Fin.init '' (convexHull ℝ) ↑T) intro x k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑T⊢ StarConvex ℝ x (Fin.init '' (convexHull ℝ) ↑T) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝ⊢ y ∈ Fin.init '' (convexHull ℝ) ↑T →
∀ ⦃a b : ℝ⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑T⊢ ∀ ⦃a b : ℝ⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑Ta:ℝ⊢ ∀ ⦃b : ℝ⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑Ta:ℝb:ℝ⊢ 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑Ta:ℝb:ℝha:0 ≤ a⊢ 0 ≤ b → a + b = 1 → a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑Ta:ℝb:ℝha:0 ≤ ahb:0 ≤ b⊢ a + b = 1 → a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}x:Fin k → ℝhx:x ∈ Fin.init '' (convexHull ℝ) ↑Ty:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑Ta:ℝb:ℝha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ a • x + b • y ∈ Fin.init '' (convexHull ℝ) ↑T;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}y:Fin k → ℝhy:y ∈ Fin.init '' (convexHull ℝ) ↑Ta:ℝb:ℝha:0 ≤ ahb:0 ≤ bhab:a + b = 1u:Fin (k + 1) → ℝhu:u ∈ (convexHull ℝ) ↑T⊢ a • Fin.init u + b • y ∈ Fin.init '' (convexHull ℝ) ↑T; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}a:ℝb:ℝha:0 ≤ ahb:0 ≤ bhab:a + b = 1u:Fin (k + 1) → ℝhu:u ∈ (convexHull ℝ) ↑Tv:Fin (k + 1) → ℝhv:v ∈ (convexHull ℝ) ↑T⊢ a • Fin.init u + b • Fin.init v ∈ Fin.init '' (convexHull ℝ) ↑T; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}a:ℝb:ℝha:0 ≤ ahb:0 ≤ bhab:a + b = 1u:Fin (k + 1) → ℝhu:u ∈ (convexHull ℝ) ↑Tv:Fin (k + 1) → ℝhv:v ∈ (convexHull ℝ) ↑T⊢ a • u + b • v ∈ (convexHull ℝ) ↑T ∧ Fin.init (a • u + b • v) = a • Fin.init u + b • Fin.init v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sa:ℝb:ℝu:Fin (k + 1) → ℝv:Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}ha:0 ≤ ahb:0 ≤ bhab:a + b = 1hu:u ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S)hv:v ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S)⊢ a • u + b • v ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init (a • u + b • v) = a • Fin.init u + b • Fin.init v ;
exact ⟨ convex_convexHull ℝ _ hu hv ha hb hab, k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sa:ℝb:ℝu:Fin (k + 1) → ℝv:Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}ha:0 ≤ ahb:0 ≤ bhab:a + b = 1hu:u ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S)hv:v ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S)⊢ Fin.init (a • u + b • v) = a • Fin.init u + b • Fin.init v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sa:ℝb:ℝu:Fin (k + 1) → ℝv:Fin (k + 1) → ℝh_compact:IsCompact {p | p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w✝ v)) '' ↑S) ∧ Fin.init p = x}ha:0 ≤ ahb:0 ≤ bhab:a + b = 1hu:u ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S)hv:v ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S)i:Fin k⊢ Fin.init (a • u + b • v) i = (a • Fin.init u + b • Fin.init v) i; All goals completed! 🐙 ⟩;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}h_image:Fin.init '' (convexHull ℝ) ↑T = (convexHull ℝ) (Fin.init '' ↑T)⊢ ↑S = Fin.init '' ↑T;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}h_image:Fin.init '' (convexHull ℝ) ↑T = (convexHull ℝ) (Fin.init '' ↑T)x✝:Fin k → ℝ⊢ x✝ ∈ ↑S ↔ x✝ ∈ Fin.init '' ↑T; All goals completed! 🐙;
All goals completed! 🐙;
have := h_compact.exists_isMinOn h_nonempty ( show ContinuousOn ( fun p : Fin ( k + 1 ) → ℝ => p ( Fin.last k ) ) _ from Continuous.continuousOn <| k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sh_compact:IsCompact {p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}h_nonempty:{p | p ∈ (convexHull ℝ) ↑T ∧ Fin.init p = x}.Nonempty⊢ Continuous fun p => p (Fin.last k) All goals completed! 🐙 );
All goals completed! 🐙;
obtain ⟨F, hF⟩ : ∃ F : (Fin (k+1) → ℝ) →ₗ[ℝ] ℝ, (∀ z ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)), F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∃ F, (∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)⊢ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = Fin.init p₀ → p₀ (Fin.last k) ≤ p (Fin.last k);
All goals completed! 🐙;
-- Define `φ := (1 / (-c)) • G` and `b := F p₀ / c`.
obtain ⟨G, c, hG⟩ : ∃ G : (Fin k → ℝ) →ₗ[ℝ] ℝ, ∃ c : ℝ, c < 0 ∧ ∀ z : Fin (k+1) → ℝ, F z = G (Fin.init z) + c * z (Fin.last k) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0⊢ ∃ G, ∃ c < 0, ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0⊢ (Fin k → ℝ) →ₗ[ℝ] ℝk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0⊢ ∀ (z : Fin (k + 1) → ℝ), F z = ?refine'_1 (Fin.init z) + F (Pi.single (Fin.last k) 1) * z (Fin.last k);
exact F.comp ( show ( Fin k → ℝ ) →ₗ[ℝ] Fin ( k + 1 ) → ℝ from { toFun := fun v => Fin.snoc v 0, map_add' := fun v w => k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0v:Fin k → ℝw:Fin k → ℝ⊢ Fin.snoc (v + w) 0 = Fin.snoc v 0 + Fin.snoc w 0 k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0v:Fin k → ℝw:Fin k → ℝi:Fin (k + 1)⊢ Fin.snoc (v + w) 0 i = (Fin.snoc v 0 + Fin.snoc w 0) i; k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0v:Fin k → ℝw:Fin k → ℝ⊢ Fin.snoc (v + w) 0 (Fin.last k) = (Fin.snoc v 0 + Fin.snoc w 0) (Fin.last k)k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0v:Fin k → ℝw:Fin k → ℝi✝:Fin k⊢ Fin.snoc (v + w) 0 i✝.castSucc = (Fin.snoc v 0 + Fin.snoc w 0) i✝.castSucc k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0v:Fin k → ℝw:Fin k → ℝ⊢ Fin.snoc (v + w) 0 (Fin.last k) = (Fin.snoc v 0 + Fin.snoc w 0) (Fin.last k)k:ℕw✝:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0v:Fin k → ℝw:Fin k → ℝi✝:Fin k⊢ Fin.snoc (v + w) 0 i✝.castSucc = (Fin.snoc v 0 + Fin.snoc w 0) i✝.castSucc All goals completed! 🐙, map_smul' := fun c v => k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0c:ℝv:Fin k → ℝ⊢ Fin.snoc (c • v) 0 = (RingHom.id ℝ) c • Fin.snoc v 0 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0c:ℝv:Fin k → ℝi:Fin (k + 1)⊢ Fin.snoc (c • v) 0 i = ((RingHom.id ℝ) c • Fin.snoc v 0) i; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0c:ℝv:Fin k → ℝ⊢ Fin.snoc (c • v) 0 (Fin.last k) = ((RingHom.id ℝ) c • Fin.snoc v 0) (Fin.last k)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0c:ℝv:Fin k → ℝi✝:Fin k⊢ Fin.snoc (c • v) 0 i✝.castSucc = ((RingHom.id ℝ) c • Fin.snoc v 0) i✝.castSucc k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0c:ℝv:Fin k → ℝ⊢ Fin.snoc (c • v) 0 (Fin.last k) = ((RingHom.id ℝ) c • Fin.snoc v 0) (Fin.last k)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0c:ℝv:Fin k → ℝi✝:Fin k⊢ Fin.snoc (c • v) 0 i✝.castSucc = ((RingHom.id ℝ) c • Fin.snoc v 0) i✝.castSucc All goals completed! 🐙 } );
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ F z =
(F ∘ₗ
have this := { toFun := fun v => Fin.snoc v 0, map_add' := ⋯, map_smul' := ⋯ };
this)
(Fin.init z) +
F (Pi.single (Fin.last k) 1) * z (Fin.last k); k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ F z -
(F ∘ₗ
have this := { toFun := fun v => Fin.snoc v 0, map_add' := ⋯, map_smul' := ⋯ };
this)
(Fin.init z) =
F (Pi.single (Fin.last k) 1) * z (Fin.last k) ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ F z - F (Fin.snoc (Fin.init z) 0) = z (Fin.last k) * F (Pi.single (Fin.last k) 1) ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ F (z - Fin.snoc (Fin.init z) 0) = z (Fin.last k) * F (Pi.single (Fin.last k) 1);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ F (z - Fin.snoc (Fin.init z) 0) = F (z (Fin.last k) • Pi.single (Fin.last k) 1) ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ z - Fin.snoc (Fin.init z) 0 = z (Fin.last k) • Pi.single (Fin.last k) 1 ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝi:Fin (k + 1)⊢ (z - Fin.snoc (Fin.init z) 0) i = (z (Fin.last k) • Pi.single (Fin.last k) 1) i ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ (z - Fin.snoc (Fin.init z) 0) (Fin.last k) = (z (Fin.last k) • Pi.single (Fin.last k) 1) (Fin.last k)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝi✝:Fin k⊢ (z - Fin.snoc (Fin.init z) 0) i✝.castSucc = (z (Fin.last k) • Pi.single (Fin.last k) 1) i✝.castSucc k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝ⊢ (z - Fin.snoc (Fin.init z) 0) (Fin.last k) = (z (Fin.last k) • Pi.single (Fin.last k) 1) (Fin.last k)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝi✝:Fin k⊢ (z - Fin.snoc (Fin.init z) 0) i✝.castSucc = (z (Fin.last k) • Pi.single (Fin.last k) 1) i✝.castSucc k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0z:Fin (k + 1) → ℝi✝:Fin k⊢ z i✝.castSucc - Fin.init z i✝ = 0 ;
All goals completed! 🐙;
obtain ⟨φ, b, hφ⟩ : ∃ φ : (Fin k → ℝ) →ₗ[ℝ] ℝ, ∃ b : ℝ, (∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ ∃ φ b, (∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ ∀ v ∈ S, ((1 / -c) • G) v + F p₀ / c ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ ((1 / -c) • G) x + F p₀ / c = p₀ (Fin.last k) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ ∀ v ∈ S, ((1 / -c) • G) v + F p₀ / c ≤ w vk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ ((1 / -c) • G) x + F p₀ / c = p₀ (Fin.last k) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ -(c⁻¹ * G x) + c⁻¹ * (G x + c * p₀ (Fin.last k)) = p₀ (Fin.last k);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ ∀ v ∈ S, c⁻¹ * (G x + c * p₀ (Fin.last k)) ≤ c⁻¹ * G v + w v intro v k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ S⊢ c⁻¹ * (G x + c * p₀ (Fin.last k)) ≤ c⁻¹ * G v + w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0⊢ c⁻¹ * (G x + c * p₀ (Fin.last k)) ≤ c⁻¹ * G v + w v; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) →
G (Fin.init (Fin.snoc v (w v))) + c * Fin.snoc v (w v) (Fin.last k) ≤ G x + c * p₀ (Fin.last k)⊢ c⁻¹ * (G x + c * p₀ (Fin.last k)) ≤ c⁻¹ * G v + w v ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ c⁻¹ * (G x + c * p₀ (Fin.last k)) ≤ c⁻¹ * G v + w v ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ (G x + c * p₀ (Fin.last k)) / c ≤ G v / c + w v;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ G v + w v * c ≤ G x + c * p₀ (Fin.last k)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ c < 0k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ c ≠ 0 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ G v + w v * c ≤ G x + c * p₀ (Fin.last k)k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ c < 0k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)v:Fin k → ℝhv:v ∈ ShF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0this:Fin.snoc v (w v) ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) → G v + c * w v ≤ G x + c * p₀ (Fin.last k)⊢ c ≠ 0 All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)⊢ -(c⁻¹ * G x) + c⁻¹ * (G x + c * p₀ (Fin.last k)) = p₀ (Fin.last k) All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'⊢ False;
-- Consider the linear functional $z \mapsto \varphi'(Fin.init z) - z (Fin.last k)$ plus constant $b'$.
have h_linear : ∀ z ∈ convexHull ℝ (T : Set (Fin (k+1) → ℝ)), φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0 := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑S⊢ ∃ φ b,
(∀ v ∈ S, φ v + b ≤ w v) ∧ ∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ), (∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b
intro z k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:z ∈ (convexHull ℝ) ↑T⊢ φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ ↑T ⊆ {z | φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0}k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ Convex ℝ {z | φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0}k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:z ∈ {z | φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0}⊢ φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ ↑T ⊆ {z | φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0}k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ Convex ℝ {z | φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0}k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:z ∈ {z | φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0}⊢ φ' (Fin.init z) + b' - z (Fin.last k) ≤ 0 k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:φ' (Fin.init z) + b' ≤ z (Fin.last k)⊢ φ' (Fin.init z) + b' ≤ z (Fin.last k);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ ↑T ⊆ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhT_def:Truehp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ t⊢ ↑S ⊆ {a | φ' a + b' ≤ w a};
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ t⊢ Convex ℝ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} intro x k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}⊢ StarConvex ℝ x {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝ⊢ y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} →
∀ ⦃a b : ℝ⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝhy:y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}⊢ ∀ ⦃a b : ℝ⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝhy:y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}a:ℝ⊢ ∀ ⦃b : ℝ⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝhy:y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}a:ℝb:ℝ⊢ 0 ≤ a → 0 ≤ b → a + b = 1 → a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝhy:y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}a:ℝb:ℝha:0 ≤ a⊢ 0 ≤ b → a + b = 1 → a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝhy:y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}a:ℝb:ℝha:0 ≤ ahb:0 ≤ b⊢ a + b = 1 → a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)} k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑T ⊆ t → Convex ℝ t → z ∈ tx:Fin (k + 1) → ℝhx:x ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}y:Fin (k + 1) → ℝhy:y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}a:ℝb:ℝha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ a • x + b • y ∈ {z | φ' (Fin.init z) + b' ≤ z (Fin.last k)}; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝb:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ φ' (Fin.init (a • x + b • y)) + b' ≤ a * x (Fin.last k) + b * y (Fin.last k) ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝb:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ φ' (Fin.init (a • x + b • y)) + b' = a * (φ' (Fin.init x) + b') + b * (φ' (Fin.init y) + b') ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝb:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ φ' (Fin.init (a • x + b • y)) + b' = a * b' + a * φ' (Fin.init x) + b * b' + b * φ' (Fin.init y);
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝb:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ φ' (a • Fin.init x + b • Fin.init y) + b' = a * b' + a * φ' (Fin.init x) + b * b' + b * φ' (Fin.init y) ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝb:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ bhab:a + b = 1⊢ a • φ' (Fin.init x) + b • φ' (Fin.init y) + b' = a * b' + a * φ' (Fin.init x) + b * b' + b * φ' (Fin.init y) ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb✝:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝb:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ bhab:b = 1 - a⊢ a • φ' (Fin.init x) + b • φ' (Fin.init y) + b' = a * b' + a * φ' (Fin.init x) + b * b' + b * φ' (Fin.init y) ; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x✝:Fin k → ℝhx✝:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝF:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝG:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝφ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝz:Fin (k + 1) → ℝx:Fin (k + 1) → ℝy:Fin (k + 1) → ℝa:ℝhp₀:p₀ ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S) ∧
Fin.init p₀ = x ∧
∀ p ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S), Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)hF:(∀ z ∈ (convexHull ℝ) ((fun v => Fin.snoc v (w v)) '' ↑S),
G (Fin.init z) + c * z (Fin.last k) ≤ G x + c * p₀ (Fin.last k)) ∧
G (Fin.init (Pi.single (Fin.last k) 1)) + c < 0hG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)hφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)hφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:p₀ (Fin.last k) < φ' x✝ + b'hz:∀ (t : Set (Fin (k + 1) → ℝ)), ↑S ⊆ (fun v => Fin.snoc v (w v)) ⁻¹' t → Convex ℝ t → z ∈ thx:φ' (Fin.init x) + b' ≤ x (Fin.last k)hy:φ' (Fin.init y) + b' ≤ y (Fin.last k)ha:0 ≤ ahb:0 ≤ 1 - a⊢ a • φ' (Fin.init x) + (1 - a) • φ' (Fin.init y) + b' =
a * b' + a * φ' (Fin.init x) + (1 - a) * b' + (1 - a) * φ' (Fin.init y) ; All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)x:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sh_contra:∀ (φ : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b : ℝ),
(∀ v ∈ S, φ v + b ≤ w v) → ∃ φ' b', (∀ v ∈ S, φ' v + b' ≤ w v) ∧ φ x + b < φ' x + b'T:Finset (Fin (k + 1) → ℝ) := Finset.image (fun v => Fin.snoc v (w v)) ShT_def:T = Finset.image (fun v => Fin.snoc v (w v)) Sp₀:Fin (k + 1) → ℝhp₀:p₀ ∈ (convexHull ℝ) ↑T ∧ Fin.init p₀ = x ∧ ∀ p ∈ (convexHull ℝ) ↑T, Fin.init p = x → p₀ (Fin.last k) ≤ p (Fin.last k)F:(Fin (k + 1) → ℝ) →ₗ[ℝ] ℝhF:(∀ z ∈ (convexHull ℝ) ↑T, F z ≤ F p₀) ∧ F (Pi.single (Fin.last k) 1) < 0G:(Fin k → ℝ) →ₗ[ℝ] ℝc:ℝhG:c < 0 ∧ ∀ (z : Fin (k + 1) → ℝ), F z = G (Fin.init z) + c * z (Fin.last k)φ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhφ:(∀ v ∈ S, φ v + b ≤ w v) ∧ φ x + b = p₀ (Fin.last k)φ':(Fin k → ℝ) →ₗ[ℝ] ℝb':ℝhφ':∀ v ∈ S, φ' v + b' ≤ w vhlt:φ x + b < φ' x + b'z:Fin (k + 1) → ℝhz:φ' (Fin.init z) + b' ≤ z (Fin.last k)⊢ φ' (Fin.init z) + b' ≤ z (Fin.last k) All goals completed! 🐙;
All goals completed! 🐙
theorem exists_contactSet_cover
(w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
(hgen : ∀ σ : Finset (Fin k → ℝ),
IsContactSet w S σ → AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ)))
{x : Fin k → ℝ} (hx : x ∈ convexHull ℝ (S : Set (Fin k → ℝ))) :
∃ σ : Finset (Fin k → ℝ), IsContactSet w S σ ∧
x ∈ convexHull ℝ (σ : Set (Fin k → ℝ)) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑S⊢ ∃ σ, IsContactSet w S σ ∧ x ∈ (convexHull ℝ) ↑σ
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vhopt:∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ), (∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b⊢ ∃ σ, IsContactSet w S σ ∧ x ∈ (convexHull ℝ) ↑σ
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vhopt:∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ), (∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + b⊢ ∀ (v : Fin k → ℝ), v ∈ {v ∈ S | φ v + b = w v} ↔ v ∈ S ∧ φ v + b = w v
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sφ:(Fin k → ℝ) →ₗ[ℝ] ℝb:ℝhle:∀ v ∈ S, φ v + b ≤ w vhopt:∀ (φ' : (Fin k → ℝ) →ₗ[ℝ] ℝ) (b' : ℝ), (∀ v ∈ S, φ' v + b' ≤ w v) → φ' x + b' ≤ φ x + bv:Fin k → ℝ⊢ v ∈ {v ∈ S | φ v + b = w v} ↔ v ∈ S ∧ φ v + b = w v
All goals completed! 🐙
(7.2.e) Assembly
(7.2.e) Assembly. The nonempty contact sets of the generic w form a simplicial
complex — affine independence by (a), downward closure by (b), gluing by (c) — with
finitely many faces (all are subsets of S), and underlying space
\operatorname{conv}(S): each \operatorname{conv}(\sigma_\ell) \subseteq \operatorname{conv}(S), and conversely by (d). This is the required subdivision,
completing Case 4 and Theorem 7.1. \blacksquare
/-- The face set of the regular triangulation for height `w`: all contact sets. -/
def regularFaceSet (w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ)) :
Set (Finset (Fin k → ℝ)) :=
{ σ | IsContactSet w S σ }
/-- **The regular triangulation complex** (for a generic height `w`). -/
noncomputable def regularComplex (w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
(hgen : ∀ σ : Finset (Fin k → ℝ),
IsContactSet w S σ → AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ))) :
SimplicialComplex ℝ (Fin k → ℝ) :=
SimplicialComplex.ofErase
(regularFaceSet w S)
(k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ ∀ s ∈ regularFaceSet w S, AffineIndependent ℝ Subtype.val
intro s k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vals:Finset (Fin k → ℝ)hs:s ∈ regularFaceSet w S⊢ AffineIndependent ℝ Subtype.val
All goals completed! 🐙)
(k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ IsLowerSet (regularFaceSet w S)
intro a k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)⊢ b ≤ a → a ∈ regularFaceSet w S → b ∈ regularFaceSet w S k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)hab:b ≤ a⊢ a ∈ regularFaceSet w S → b ∈ regularFaceSet w S k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)hab:b ≤ aha:a ∈ regularFaceSet w S⊢ b ∈ regularFaceSet w S
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)hab:b ≤ aha:a ∈ regularFaceSet w Shb:b = ∅⊢ b ∈ regularFaceSet w Sk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)hab:b ≤ aha:a ∈ regularFaceSet w Shb:b.Nonempty⊢ b ∈ regularFaceSet w S
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)hab:b ≤ aha:a ∈ regularFaceSet w Shb:b = ∅⊢ b ∈ regularFaceSet w S k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)ha:a ∈ regularFaceSet w Shab:∅ ≤ a⊢ ∅ ∈ regularFaceSet w S; All goals completed! 🐙
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vala:Finset (Fin k → ℝ)b:Finset (Fin k → ℝ)hab:b ≤ aha:a ∈ regularFaceSet w Shb:b.Nonempty⊢ b ∈ regularFaceSet w S All goals completed! 🐙)
(k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ ∀ s ∈ regularFaceSet w S, ∀ t ∈ regularFaceSet w S, (convexHull ℝ) ↑s ∩ (convexHull ℝ) ↑t ⊆ (convexHull ℝ) (↑s ∩ ↑t)
intro s k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vals:Finset (Fin k → ℝ)hs:s ∈ regularFaceSet w S⊢ ∀ t ∈ regularFaceSet w S, (convexHull ℝ) ↑s ∩ (convexHull ℝ) ↑t ⊆ (convexHull ℝ) (↑s ∩ ↑t) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vals:Finset (Fin k → ℝ)hs:s ∈ regularFaceSet w St:Finset (Fin k → ℝ)⊢ t ∈ regularFaceSet w S → (convexHull ℝ) ↑s ∩ (convexHull ℝ) ↑t ⊆ (convexHull ℝ) (↑s ∩ ↑t) k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vals:Finset (Fin k → ℝ)hs:s ∈ regularFaceSet w St:Finset (Fin k → ℝ)ht:t ∈ regularFaceSet w S⊢ (convexHull ℝ) ↑s ∩ (convexHull ℝ) ↑t ⊆ (convexHull ℝ) (↑s ∩ ↑t)
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.vals:Finset (Fin k → ℝ)hs:s ∈ regularFaceSet w St:Finset (Fin k → ℝ)ht:t ∈ regularFaceSet w S⊢ (convexHull ℝ) ↑s ∩ (convexHull ℝ) ↑t ⊆ (convexHull ℝ) ↑(s ∩ t)
All goals completed! 🐙)
lemma regularComplex_space (w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
(hgen : ∀ σ : Finset (Fin k → ℝ),
IsContactSet w S σ → AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ))) :
(regularComplex w S hgen).space = convexHull ℝ (S : Set (Fin k → ℝ)) := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (regularComplex w S hgen).space = (convexHull ℝ) ↑S
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (regularComplex w S hgen).space ⊆ (convexHull ℝ) ↑Sk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (convexHull ℝ) ↑S ⊆ (regularComplex w S hgen).space;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (regularComplex w S hgen).space ⊆ (convexHull ℝ) ↑S intro x k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (regularComplex w S hgen).space⊢ x ∈ (convexHull ℝ) ↑S;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:∃ i, (i ∈ regularFaceSet w S ∧ ¬i = ∅) ∧ x ∈ (convexHull ℝ) ↑i⊢ x ∈ (convexHull ℝ) ↑S;
All goals completed! 🐙;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (convexHull ℝ) ↑S ⊆ (regularComplex w S hgen).space intro x k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑S⊢ x ∈ (regularComplex w S hgen).space; k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑S⊢ ∃ s ∈ (regularComplex w S hgen).faces, x ∈ (convexHull ℝ) ↑s ;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sσ:Finset (Fin k → ℝ)hσ₁:IsContactSet w S σhσ₂:x ∈ (convexHull ℝ) ↑σ⊢ ∃ s ∈ (regularComplex w S hgen).faces, x ∈ (convexHull ℝ) ↑s;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sσ:Finset (Fin k → ℝ)hσ₁:IsContactSet w S σhσ₂:x ∈ (convexHull ℝ) ↑σhσ₃:σ = ∅⊢ ∃ s ∈ (regularComplex w S hgen).faces, x ∈ (convexHull ℝ) ↑sk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sσ:Finset (Fin k → ℝ)hσ₁:IsContactSet w S σhσ₂:x ∈ (convexHull ℝ) ↑σhσ₃:¬σ = ∅⊢ ∃ s ∈ (regularComplex w S hgen).faces, x ∈ (convexHull ℝ) ↑s k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sσ:Finset (Fin k → ℝ)hσ₁:IsContactSet w S σhσ₂:x ∈ (convexHull ℝ) ↑σhσ₃:σ = ∅⊢ ∃ s ∈ (regularComplex w S hgen).faces, x ∈ (convexHull ℝ) ↑sk:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sσ:Finset (Fin k → ℝ)hσ₁:IsContactSet w S σhσ₂:x ∈ (convexHull ℝ) ↑σhσ₃:¬σ = ∅⊢ ∃ s ∈ (regularComplex w S hgen).faces, x ∈ (convexHull ℝ) ↑s k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valx:Fin k → ℝhx:x ∈ (convexHull ℝ) ↑Sσ:Finset (Fin k → ℝ)hσ₁:IsContactSet w S σhσ₂:x ∈ (convexHull ℝ) ↑σhσ₃:¬σ = ∅⊢ ∃ s, (s ∈ regularFaceSet w S ∧ ¬s = ∅) ∧ x ∈ (convexHull ℝ) ↑s;
All goals completed! 🐙
lemma regularComplex_faces_finite (w : (Fin k → ℝ) → ℝ) (S : Finset (Fin k → ℝ))
(hgen : ∀ σ : Finset (Fin k → ℝ),
IsContactSet w S σ → AffineIndependent ℝ ((↑) : σ → (Fin k → ℝ))) :
(regularComplex w S hgen).faces.Finite := k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (regularComplex w S hgen).faces.Finite
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ (regularComplex w S hgen).faces ⊆ ↑S.powerset;
intro σ k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valσ:Finset (Fin k → ℝ)hσ:σ ∈ (regularComplex w S hgen).faces⊢ σ ∈ ↑S.powerset;
k:ℕw:(Fin k → ℝ) → ℝS:Finset (Fin k → ℝ)hgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.valσ:Finset (Fin k → ℝ)hσ:σ ∈ regularFaceSet w S ∧ ¬σ = ∅⊢ σ ⊆ S;
All goals completed! 🐙
/-- **Triangulation existence.** Every polytope `convexHull ℝ S` admits a polyhedral
subdivision (the regular triangulation for a generic height). -/
theorem regular_subdivision_exists (S : Finset (Fin k → ℝ)) :
Nonempty (FamiliesOfMapsB01.Subdivision (convexHull ℝ (S : Set (Fin k → ℝ)))) := k:ℕS:Finset (Fin k → ℝ)⊢ Nonempty (FamiliesOfMapsB01.Subdivision ((convexHull ℝ) ↑S))
k:ℕS:Finset (Fin k → ℝ)w:(Fin k → ℝ) → ℝhgen:∀ (σ : Finset (Fin k → ℝ)), IsContactSet w S σ → AffineIndependent ℝ Subtype.val⊢ Nonempty (FamiliesOfMapsB01.Subdivision ((convexHull ℝ) ↑S))
All goals completed! 🐙
end FamiliesOfMapsB01Regular
end Submission