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) ∈ Ω