internlm/Lean-Github huggingface dataset:
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
⊢ e.source ∩ (s ∩ f ⁻¹' e'.source) ⊆ e.source
Tactic:
apply inter_subset_left
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
⊢ ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
Tactic:
calc (e.extend I).symm '' s_better
  _ = ((e.extend I).symm ∘ (e.extend I)) '' (s ∩ e.source ∩ f ⁻¹' e'.source) := by simp only [comp.assoc, image_comp]
  _ = s ∩ e.source ∩ f ⁻¹' e'.source := cor
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
⊢ ↑(e.extend I).symm '' s_better = ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
Tactic:
simp only [comp.assoc, image_comp]
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
⊢ s ∩ (e.source ∩ f ⁻¹' e'.source) ⊆ s
Tactic:
exact inter_subset_left s _
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
⊢ e.source ∩ (s ∩ f ⁻¹' e'.source) ⊆ e.source
Tactic:
exact inter_subset_left _ _
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
⊢ f ∘ ↑(e.extend I).symm '' w = f '' (↑(e.extend I).symm '' w)
Tactic:
rw [image_comp]
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
⊢ f '' (↑(e.extend I).symm '' w) = f '' (e.source ∩ f ⁻¹' e'.source)
Tactic:
sorry
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
hw : f ∘ ↑(e.extend I).symm '' w ⊆ e'.source
hsbetter₃ : f ∘ ↑(e.extend I).symm '' s_better ⊆ e'.source
⊢ f_local '' s_better = ↑J ∘ ↑e' '' (e'.source ∩ f '' (e.source ∩ s))
Tactic:
calc f_local '' s_better
  _ = ((J ∘ e') ∘ f) '' (((e.extend I).symm ∘ (e.extend I)) '' (s ∩ e.source ∩ f ⁻¹' e'.source)) := by
    simp only [e, e', f_local, s_better, comp.assoc, image_comp]
  _ = J ∘ e' '' (f '' (s ∩ e.source ∩ f ⁻¹' e'.source)) := by rw [cor, image_comp]
  _ = J ∘ e' '' (f '' (e.source ∩ s ∩ f ⁻¹' e'.source)) := by rw [inter_comm s]
  _ = J ∘ e' '' (f '' (e.source ∩ s) ∩ e'.source) := by rw [image_inter_preimage f _ _]
  _ = J ∘ e' '' (e'.source ∩ f '' (e.source ∩ s)) := by rw [inter_comm]
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
hw : f ∘ ↑(e.extend I).symm '' w ⊆ e'.source
hsbetter₃ : f ∘ ↑(e.extend I).symm '' s_better ⊆ e'.source
⊢ f_local '' s_better = (↑J ∘ ↑e') ∘ f '' (↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source))
Tactic:
simp only [e, e', f_local, s_better, comp.assoc, image_comp]
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
hw : f ∘ ↑(e.extend I).symm '' w ⊆ e'.source
hsbetter₃ : f ∘ ↑(e.extend I).symm '' s_better ⊆ e'.source
⊢ (↑J ∘ ↑e') ∘ f '' (↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)) =
    ↑J ∘ ↑e' '' (f '' (s ∩ e.source ∩ f ⁻¹' e'.source))
Tactic:
rw [cor, image_comp]
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
hw : f ∘ ↑(e.extend I).symm '' w ⊆ e'.source
hsbetter₃ : f ∘ ↑(e.extend I).symm '' s_better ⊆ e'.source
⊢ ↑J ∘ ↑e' '' (f '' (s ∩ e.source ∩ f ⁻¹' e'.source)) = ↑J ∘ ↑e' '' (f '' (e.source ∩ s ∩ f ⁻¹' e'.source))
Tactic:
rw [inter_comm s]
Proof state after:
no goals
Theorem: sard_boundaryless
Proof state before:
E : Type u_1
inst✝²⁰ : NormedAddCommGroup E
inst✝¹⁹ : NormedSpace ℝ E
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝¹⁷ : TopologicalSpace M
inst✝¹⁶ : ChartedSpace H M
inst✝¹⁵ : SmoothManifoldWithCorners I M
inst✝¹⁴ : FiniteDimensional ℝ E
inst✝¹³ : SecondCountableTopology M
inst✝¹² : MeasurableSpace E
inst✝¹¹ : BorelSpace E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
G : Type u_5
inst✝⁸ : TopologicalSpace G
J : ModelWithCorners ℝ F G
N : Type u_6
inst✝⁷ : TopologicalSpace N
inst✝⁶ : ChartedSpace G N
inst✝⁵ : SmoothManifoldWithCorners J N
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
m n r : ℕ
hm : finrank ℝ E = m
hn : finrank ℝ F = n
hr : r > m - n
f : M → N
hf : ContMDiff I J (↑r) f
inst✝¹ : I.Boundaryless
inst✝ : J.Boundaryless
f' : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)
s : Set M
hf' : ∀ x ∈ s, HasMFDerivAt I J f x (f' x)
h'f' : ∀ x ∈ s, ¬Surjective ⇑(f' x)
x : M
e : PartialHomeomorph M H := chartAt H x
μ : Measure F
hμ : μ.IsAddHaarMeasure
y : N
e' : PartialHomeomorph N G := chartAt G y
w : Set E := ↑(e.extend I) '' (e.source ∩ f ⁻¹' e'.source)
s_better : Set E := ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source)
f_local : E → F := (↑J ∘ ↑e') ∘ f ∘ ↑(e.extend I).symm
hwopen : IsOpen w
hsw : s_better ⊆ w
hsbetter₀ : s_better ⊆ ↑(e.extend I) '' e.source
cor : ↑(e.extend I).symm ∘ ↑(e.extend I) '' (s ∩ e.source ∩ f ⁻¹' e'.source) = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter : ↑(e.extend I).symm '' s_better = s ∩ e.source ∩ f ⁻¹' e'.source
hsbetter₁ : ↑(e.extend I).symm '' s_better ⊆ s
hsbetter₂ : ↑(e.extend I).symm '' s_better ⊆ e.source
hw : f ∘ ↑(e.extend I).symm '' w ⊆ e'.source
hsbetter₃ : f ∘ ↑(e.extend I).symm '' s_better ⊆ e'.source
⊢ ↑J ∘ ↑e' '' (f '' (e.source ∩ s ∩ f ⁻¹' e'.source)) = ↑J ∘ ↑e' '' (f '' (e.source ∩ s) ∩ e'.source)
Tactic:
rw [image_inter_preimage f _ _]
Proof state after:
no goals