Surrounding families of loops #
In order to carry out the corrugation technique of convex integration, one needs to a family of loops with various prescribed properties.
This file begins the work of constructing such a family.
The key definitions are:
The key results are:
An arbitrary path joining x and y in F.
Instances For
A path through p 0, ..., p n. Usually this is used with n := m.
Equations
- hF.pathThrough hp 0 = Path.refl (p 0)
- hF.pathThrough hp n.succ = (hF.pathThrough hp n).trans (hF.somePath ⋯ ⋯)
Instances For
f is smooth at x if f is smooth on some neighborhood of x.
Instances For
p is a collection of points surrounding f with weights w (that are positive and sum to 1)
if the weighted average of the points p is f and the points p form an affine basis of the
space.
- indep : AffineIndependent ℝ p
Instances For
f is surrounded by a set s if there is an affine basis p in s with weighted average f.
Equations
- Surrounded f s = ∃ (p : Fin (Module.finrank ℝ F + 1) → F) (w : Fin (Module.finrank ℝ F + 1) → ℝ), SurroundingPts f p w ∧ ∀ (i : Fin (Module.finrank ℝ F + 1)), p i ∈ s
Instances For
A loop γ surrounds a point x if x is surrounded by values of γ.
Equations
- γ.Surrounds x = ∃ (t : Fin (Module.finrank ℝ F + 1) → ℝ) (w : Fin (Module.finrank ℝ F + 1) → ℝ), SurroundingPts x (↑γ ∘ t) w
Instances For
This is only a stepping stone potentially useful for SurroundingFamily.surrounds_of_close,
but not needed by itself.
witness of surrounding_loop_of_convexHull
Equations
- surroundingLoop O_conn hp hb = Loop.roundTripFamily ((O_conn.somePath hb ⋯).trans (O_conn.pathThrough hp (Module.finrank ℝ F)))
Instances For
TODO: continuity note
γ forms a family of loops surrounding g with base b.
In contrast to the notes we assume that base and t₀ hold universally.
- cont : Continuous ↿γ
Instances For
γ forms a family of loops surrounding g with base b in Ω.
- cont : Continuous ↿γ
- val_in' (x : E) : x ∈ U → ∀ t ∈ unitInterval, ∀ s ∈ unitInterval, (x, ↑(γ x t) s) ∈ Ω
Instances For
A surrounding family induces a family of paths from b x to b x.
We defined the concatenation we need on path, so we need to turn a surrounding
family into the family of paths.
Equations
- h.path x t = { toFun := fun (s : ↑unitInterval) => ↑(γ x t) ↑s, continuous_toFun := ⋯, source' := ⋯, target' := ⋯ }
Instances For
Abbreviation for toSurroundingFamily
Continuously reparameterize a surroundingFamilyIn so that it is constant near
s ∈ {0,1} and t ∈ {0,1}
Note: The conditions in this lemma are currently a bit weaker than the ones mentioned in the
blueprint.
TODO: use local_loops_def
A tiny reformulation of local_loops where the existing U is open.
The homotopy of surrounding families of loops used in lemma satisfied_or_refund.
Having this as a separate definition is useful, because the construction actually gives some
more information about the homotopy than the theorem satisfied_or_refund gives.
Equations
- sfHomotopy h₀ h₁ τ x t = Loop.ofPath ((h₀.path x (ρ τ * projI t)).strans (h₁.path x (ρ (1 - τ) * projI t)) (Set.projIcc 0 1 sfHomotopy._proof_1 (1 - τ)))
Instances For
In this lemmas and the lemmas below we add FiniteDimensional ℝ E so that we can conclude
LocallyCompactSpace E.
A more precise version of sfHomotopy_in.
Equations
- ContinuousGerm φ = Quotient.liftOn' φ (fun (γ : E → ℝ → Loop F) => ∀ (t s : ℝ), ContinuousAt (fun (p : E × ℝ × ℝ) => ↑(γ p.1 p.2.1) p.2.2) (x, t, s)) ⋯
Instances For
- cont : ContinuousGerm φ
Instances For
- val_in' (t : ℝ) : t ∈ unitInterval → ∀ s ∈ unitInterval, (x, ↑(φ.value t) s) ∈ Ω