[Merged by Bors] - feat(geometry/manifold/cont_mdiff): local structomorphisms of cont_diff_groupoid#17291
[Merged by Bors] - feat(geometry/manifold/cont_mdiff): local structomorphisms of cont_diff_groupoid#17291
cont_diff_groupoid#17291Conversation
fpvandoorn
left a comment
There was a problem hiding this comment.
I'll look through the long proof later, to see if I see any simplifications.
| omit Is | ||
|
|
||
| /-- An element of `cont_diff_groupoid ⊤ I` is smooth for any `n`. -/ | ||
| lemma cont_mdiff_on_of_mem_cont_diff_groupoid |
There was a problem hiding this comment.
This can be simpler with cont_mdiff_on_of_mem_maximal_atlas and we might also not need the new lemmas in local_invariant_properties.lean
There was a problem hiding this comment.
Doesn't it amount to the same thing, though? Currently, the argument is:
cont_mdiffis a local invariant property- a criterion for elements of the groupoid to necessarily have a given local invariant property, which is proved by
(i) an element of the groupoid is in the maximal atlas
(ii) a criterion for elements of the maximal atlas to necessarily have a given local invariant property
And you're proposing changing it to
- an element of the groupoid is in the maximal atlas
- elements of the maximal atlas are
cont_mdiff, which is proved by
(i)cont_mdiffis a local invariant property
(ii) a criterion for elements of the maximal atlas to necessarily have a given local invariant property
There was a problem hiding this comment.
The argument is basically the same, but cont_mdiff_on_of_mem_maximal_atlas $ structure_groupoid.mem_maximal_atlas_of_mem_groupoid _ h is shorter than your current proof and doesn't use the lemmas in local_invariant_properties.
There was a problem hiding this comment.
I've cleaned up my proof, which was indeed a bit unwieldy (there was an unnecessary detour via the infinite-smoothness fact to get the n-times-smoothness fact). Now the two styles of proof should indeed be the same length, and given that, I have an aesthetic preference for the approach in which a cont_mdiff lemma is deduced directly from a corresponding local_invariant_prop lemma. Do you mind?
fpvandoorn
left a comment
There was a problem hiding this comment.
The two suggestions cut down the compilation time of the proof by half (~17s -> ~9s on my laptop).
Further, I'm wondering if you can prove smooth_on I I f.symm f.target by a symmetry argument. That proof might be longer in total than the current proof, but I was thinking of something like the following sketch:
lemma is_local_structomorph_within_at_symm {G : structure_groupoid H} [closed_under_restriction G]
{f : local_homeomorph H H} {s : set H} {x : H}
(hx : x ∈ f.source) (hf : G.is_local_structomorph_within_at f s x) :
G.is_local_structomorph_within_at f.symm (f '' (f.source ∩ s)) (f x) :=
begin
rintro ⟨y, hy, hys⟩,
obtain rfl : y = x := f.inj_on hy.1 hx hys,
obtain ⟨e, heg, hfe, hxe⟩ := hf hy.2,
refine ⟨e.symm.restr (f.target ∩ f.symm ⁻¹' e.source),
closed_under_restriction' (G.symm heg) sorry, _, _⟩,
{ rintro _ ⟨⟨z, ⟨hzf, hzs⟩, rfl⟩, hz⟩,
have h2z : z ∈ e.source,
{ sorry },
rw [f.left_inv hzf, e.symm.restr_apply, hfe ⟨hzs, h2z⟩, e.left_inv h2z] },
{ rw [e.symm.restr_source], sorry }
end
lemma lift_prop_on_symm {G : structure_groupoid H}
{f : local_homeomorph H H} {s : set H} {x : H} {P : (H → H) → set H → H → Prop}
(hP : G.local_invariant_prop G P)
(symm : ∀ ⦃s x⦄ ⦃f : local_homeomorph H H⦄, x ∈ f.source → P f s x → P f.symm (f '' (f.source ∩ s)) x)
(hx : x ∈ f.source) (hf : lift_prop_on P f f.source) :
lift_prop_on P f.symm f.target :=
begin
intros x hx,
refine ⟨f.symm.continuous_on x hx, _⟩,
sorry
endLastly, unrelated to this PR, I noticed that closed_under_restriction has a superfluous is_open s assumption (note that e.restr s is defined as the restriction on interior s)
Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
|
There are two local-invariant-props around:
? I'm assuming |
|
I think you can prove lemma is_local_structomorph_on_cont_diff_groupoid_iff_aux {f : local_homeomorph M M'}
(hf : lift_prop_on (cont_diff_groupoid ⊤ I).is_local_structomorph_within_at f f.source) :
smooth_on I I f f.source :=
sorry -- you already proved this
/-- Let `M` and `M'` be smooth manifolds with the same model-with-corners, `I`. Then `f : M → M'`
is a local structomorphism for `I`, if and only if it is manifold-smooth on the domain of definition
in both directions. -/
lemma is_local_structomorph_on_cont_diff_groupoid_iff (f : local_homeomorph M M') :
lift_prop_on (cont_diff_groupoid ⊤ I).is_local_structomorph_within_at f f.source
↔ smooth_on I I f f.source ∧ smooth_on I I f.symm f.target :=
begin
split,
{ intros h,
refine ⟨is_local_structomorph_on_cont_diff_groupoid_iff_aux h,
is_local_structomorph_on_cont_diff_groupoid_iff_aux _⟩,
intros X hX,
let x := f.symm X,
have hx : x ∈ f.source := f.symm.maps_to hX,
let c := chart_at H x,
let c' := chart_at H X,
obtain ⟨-, hxf⟩ := h x hx,
refine ⟨(f.symm.continuous_at hX).continuous_within_at, λ h2x, _⟩,
obtain ⟨e, he, he', hex⟩ : ∃ e : local_homeomorph H H, e ∈ cont_diff_groupoid ⊤ I ∧
eq_on (c' ∘ f ∘ c.symm) e (c.symm ⁻¹' f.source ∩ e.source) ∧ c x ∈ e.source,
{ have : c' = chart_at H (f x) := by simp only [f.right_inv hX],
rw this,
exact hxf (by simp only [hx] with mfld_simps) },
have hX' : c' X = e (c (f.symm X)),
{ rw ← he',
{ dsimp only [function.comp],
have hfX : f.symm X ∈ c.source := by simp only [hX] with mfld_simps,
rw [c.left_inv hfX, f.right_inv hX] },
simp only [hX, hex] with mfld_simps, exact hx },
refine ⟨e.symm, structure_groupoid.symm _ he, _, _⟩, -- maybe e.symm needs to be restricted further
{ sorry }, -- roughly H₂ in your proof
rw [hX'], exact e.maps_to hex, },
[...] |
|
bors r+ |
…iff_groupoid` (#17291) Let `M` and `M'` be smooth manifolds with the same model-with-corners, `I`. Then `f : M → M'` is a local structomorphism for `I`, if and only if it is manifold-smooth on the domain of definition in both directions. Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
|
Pull request successfully merged into master. Build succeeded: |
cont_diff_groupoidcont_diff_groupoid
Let
MandM'be smooth manifolds with the same model-with-corners,I. Thenf : M → M'is a local structomorphism forI, if and only if it is manifold-smooth on the domain of definition in both directions.