Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

feat(geometry/manifold): Integral curve of vector fields #17140

Closed
wants to merge 28 commits into from

Conversation

winstonyin
Copy link
Collaborator

@winstonyin winstonyin commented Oct 24, 2022

For any continuously differentiable vector field on a manifold M and any chosen non-boundary point x₀ : M, an integral curve γ : ℝ → M exists such that γ 0 = x₀ and the tangent vector of γ at t coincides with the vector field at γ t for all t within an open interval around 0.

As a corollary, such an integral curve exists for any starting point x₀ if M is a manifold without boundary.

We have proven and used a few lemmas which may be useful in geometry.manifold.smooth_manifold_with_corners and geometry.manifold.tangent_bundle.

Note: I'm not totally satisfied with the way the lemmas leading to the theorem are structured, so any suggestions for generalisation of lemmas or splitting the long proofs into further lemmas are very welcome.


Open in Gitpod

@winstonyin winstonyin added WIP Work in progress t-differential-geometry Manifolds, etc. labels Oct 25, 2022
@mathlib-dependent-issues-bot mathlib-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Oct 25, 2022
at `t` coincides with the vector field at `γ t` for all `t` within an open interval around 0.-/
theorem exists_integral_curve_of_cont_mdiff_tangent_vector_field [proper_space E]
(v : M → tangent_bundle I M) (h₁ : ∀ x, (v x).1 = x) (h₂ : cont_mdiff I I.tangent 1 v)
(x₀ : M) (hx : 𝓔(I, x₀) x₀ ∈ interior 𝓔(I, x₀).target) :
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of hx, I'd rather define a predicate saying that x₀ is a non-boundary point, and use that here and in the other statements above.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implemented! I also added t₀ as an argument so it is not assumed to be =0.

@mathlib-dependent-issues-bot mathlib-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Oct 28, 2022
@mathlib-dependent-issues-bot
Copy link
Collaborator

@winstonyin winstonyin added awaiting-review The author would like community review of the PR and removed WIP Work in progress labels Nov 1, 2022
@ocfnash
Copy link
Collaborator

ocfnash commented Nov 1, 2022

GitHub is showing some changes that already landed as part of #16348

I think you can fix this by merging master into this branch. I have fixed this by merging master.

src/geometry/manifold/integral_curve.lean Outdated Show resolved Hide resolved
/-- An interior point of a manifold is a point whose image in the model vector space is in the
interior of the chart's target.

TODO : This definition refers to a chosen chart at `x`, but the property is independent of the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not obvious to me that this doesn't depend on the choice of charts. For finite-dimensional real manifolds, yes, but for general manifolds over a general field maybe not?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm only aware of the finite-dimensional real manifold case.

[proper_space E] [I.boundaryless]
(h₁ : ∀ x, (v x).1 = x) (h₂ : cont_mdiff I I.tangent 1 v) (t₀ : ℝ) (x₀ : M) :
∃ (ε > (0 : ℝ)) (γ : ℝ → M), γ t₀ = x₀ ∧ ∀ (t : ℝ), t ∈ set.Ioo (t₀ - ε) (t₀ + ε) →
has_mfderiv_at 𝓘(ℝ, ℝ) I γ t ((1 : ℝ →L[ℝ] ℝ).smul_right (𝓔(I.tangent, v(γ t)) (v (γ t))).2) :=
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The statement here is strange: the right statement should say that the derivative of gamma is v (gamma t) (with an smul_right as you do since we only have mfderiv and not mderiv), but there should be no chart in sight. My guess is that the difficulty comes from your choice for the type of v, as a general function from M to its tangent bundle (and then imposing that it's a section by putting a requirement (v x).1 = x). Instead, a section should probably be a function v : Π x, tangent_bundle I x: in this way, v x is by definition an element of the tangent bundle at x, and everything makes sense more easily.

Also, you are requiring that v should be C^1 globally, but the statement should be true if v is just C^1 around x.

Also, can you comment on the properness assumption on E? Cauchy-Lipschitz works in complete spaces, so I expect this assumption should be enough, right?

There is a difficulty here that we are undergoing a refactor of vector bundles currently. By the end of this refactor, we will probably have a nice API to speak of sections, smooth sections, and so on, but it's not the case currently. So I'm not sure what to advise on this PR. If you can make it work without too much trouble with the right statement and the current API, we can probably merge it now and refactor it when the vector bundle refactor lands. @hrmacbeth , @fpvandoorn , what are your thoughts on this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try to rewrite the type of section v and see if charts can be removed. I'll also relax the C^1 condition on v.

The proof of exists_is_picard_lindelof_const_of_cont_diff_on_nhds, which states that locally C^1 vector fields have a local solution, needs ∥v x∥ to be bounded above for x in a closed ball. This uses is_compact.bdd_above_image, which needs proper_space E.

I'm really looking forward to the vector bundles refactor, as the current API has been rather tricky to work with. I'm happy to use this PR to get some maths comments (which you've very helpfully given) and then rewrite it using the new API when it's ready. How can I follow the progress of its development?

Copy link
Member

@fpvandoorn fpvandoorn Jan 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, the "top" of the vector bundle refactor is #17680, but that PR depends on 5 other open pull requests. The refactor has been moving very slowly, since both @hrmacbeth and I have been focusing more on other things recently (like mathlib4 porting).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For ∥v x∥ to be bounded above in a small closed ball around a point x_0, you don't need properness: continuity at x_0 is enough.

src/geometry/manifold/integral_curve.lean Outdated Show resolved Hide resolved
src/geometry/manifold/integral_curve.lean Outdated Show resolved Hide resolved
@sgouezel sgouezel added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Dec 5, 2022
@kim-em kim-em added the too-late This PR was ready too late for inclusion in mathlib3 label Jul 16, 2023
@winstonyin winstonyin closed this Nov 29, 2023
mathlib-bors bot pushed a commit to leanprover-community/mathlib4 that referenced this pull request Jan 9, 2024
Port of [mathlib#17140](leanprover-community/mathlib3#17140) plus much more. Comments therein addressed.

For any continuously differentiable vector field (section of tangent bundle) on a manifold `M` and any chosen interior point `x₀ : M`, there exists an integral curve `γ : ℝ → M` such that `γ t₀ = x₀` for any real number `t₀` and the tangent vector of `γ` at `t` coincides with the vector field at `γ t` for all `t` within an open interval around `t₀`.

As a corollary, such an integral curve exists for any starting point `x₀` if `M` is a manifold without boundary.

We define three `Prop`s:
1. `IsIntegralCurveOn γ v s` means `γ t` is tangent to `v (γ t)` for all `t` within `s : Set ℝ`.
2. `IsIntegralCurveAt γ v t₀` means `γ` is a local integral curve to `v`. That is, `γ t` is tangent to `v (γ t)` for all `t` within some open interval of `t₀`.
3. `IsIntegralCurve γ v` means `γ` is a global integral curve to `v`. That is, `γ t` is tangent to `v (γ t)` for all `t : ℝ`.

Lemmas about rescaling and translation of integral curves are proven:
* If `γ` solves `v` at `t₀`, then `γ (t + dt)` is tangent to `v` at `t₀ - dt`.
* If `γ` solves `v` at `t₀`, then `γ (a * t)` is tangent to `a • v` at `t₀ / a` for any non-zero `a`.
* The constant function at `x₀` solves any `v` with `v x₀ = 0`.

We also shuffle the position of `∃ ε > (0 : ℝ)` in `PicardLindelof` to one that makes more sense, since `f t₀ = x₀` does not depend on `ε` yet.



Co-authored-by: Michael Rothgang <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
awaiting-author A reviewer has asked the author a question or requested changes t-differential-geometry Manifolds, etc. too-late This PR was ready too late for inclusion in mathlib3
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants