@@ -91,7 +91,7 @@ lemma ext' (e e' : Pretrivialization F proj) (h₁ : e.toPartialEquiv = e'.toPar
9191 (h₂ : e.baseSet = e'.baseSet) : e = e' := by
9292 cases e; cases e'; congr
9393
94- -- TODO: move `ext` here ?
94+ -- TODO: tag this lemma with the `ext` attribute instead ?
9595lemma ext {e e' : Pretrivialization F proj} (h₁ : ∀ x, e x = e' x)
9696 (h₂ : ∀ x, e.toPartialEquiv.symm x = e'.toPartialEquiv.symm x) (h₃ : e.baseSet = e'.baseSet) :
9797 e = e' := by
@@ -122,9 +122,11 @@ theorem coe_fst' (ex : proj x ∈ e.baseSet) : (e x).1 = proj x :=
122122
123123protected theorem eqOn : EqOn (Prod.fst ∘ e) proj e.source := fun _ hx => e.coe_fst hx
124124
125+ @[simp]
125126theorem mk_proj_snd (ex : x ∈ e.source) : (proj x, (e x).2 ) = e x :=
126127 Prod.ext (e.coe_fst ex).symm rfl
127128
129+ @[simp]
128130theorem mk_proj_snd' (ex : proj x ∈ e.baseSet) : (proj x, (e x).2 ) = e x :=
129131 Prod.ext (e.coe_fst' ex).symm rfl
130132
@@ -148,17 +150,19 @@ theorem proj_surjOn_baseSet [Nonempty F] : Set.SurjOn proj e.source e.baseSet :=
148150 ⟨e.toPartialEquiv.symm (b, y), e.toPartialEquiv.map_target <| e.mem_target.2 hb,
149151 e.proj_symm_apply' hb⟩
150152
153+ @ [simp, mfld_simps]
151154theorem apply_symm_apply {x : B × F} (hx : x ∈ e.target) : e (e.toPartialEquiv.symm x) = x :=
152155 e.toPartialEquiv.right_inv hx
153156
157+ @ [simp, mfld_simps]
154158theorem apply_symm_apply' {b : B} {x : F} (hx : b ∈ e.baseSet) :
155159 e (e.toPartialEquiv.symm (b, x)) = (b, x) :=
156160 e.apply_symm_apply (e.mem_target.2 hx)
157161
162+ @ [simp, mfld_simps]
158163theorem symm_apply_apply {x : Z} (hx : x ∈ e.source) : e.toPartialEquiv.symm (e x) = x :=
159164 e.toPartialEquiv.left_inv hx
160165
161- @ [simp, mfld_simps]
162166theorem symm_apply_mk_proj {x : Z} (ex : x ∈ e.source) :
163167 e.toPartialEquiv.symm (proj x, (e x).2 ) = x := by
164168 rw [← e.coe_fst ex, ← e.coe_coe, e.left_inv ex]
@@ -214,6 +218,7 @@ theorem coe_coe_fst (hb : b ∈ e'.baseSet) : (e' y).1 = b := by
214218theorem mk_mem_target {x : B} {y : F} : (x, y) ∈ e'.target ↔ x ∈ e'.baseSet :=
215219 e'.mem_target
216220
221+ @ [simp, mfld_simps]
217222theorem symm_coe_proj {x : B} {y : F} (e' : Pretrivialization F (π F E)) (h : x ∈ e'.baseSet) :
218223 (e'.toPartialEquiv.symm (x, y)).1 = x :=
219224 e'.proj_symm_apply' h
@@ -246,15 +251,17 @@ theorem mk_symm (e : Pretrivialization F (π F E)) {b : B} (hb : b ∈ e.baseSet
246251 TotalSpace.mk b (e.symm b y) = e.toPartialEquiv.symm (b, y) := by
247252 simp only [e.symm_apply hb, TotalSpace.mk_cast (e.proj_symm_apply' hb), TotalSpace.eta]
248253
254+ @ [simp, mfld_simps]
249255theorem symm_proj_apply (e : Pretrivialization F (π F E)) (z : TotalSpace F E)
250256 (hz : z.proj ∈ e.baseSet) : e.symm z.proj (e z).2 = z.2 := by
251257 rw [e.symm_apply hz, cast_eq_iff_heq, e.mk_proj_snd' hz, e.symm_apply_apply (e.mem_source.mpr hz)]
252258
259+ @ [simp, mfld_simps]
253260theorem symm_apply_apply_mk (e : Pretrivialization F (π F E)) {b : B} (hb : b ∈ e.baseSet)
254261 (y : E b) : e.symm b (e ⟨b, y⟩).2 = y :=
255262 e.symm_proj_apply ⟨b, y⟩ hb
256263
257- @[simp]
264+ @ [simp, mfld_simps ]
258265theorem apply_mk_symm (e : Pretrivialization F (π F E)) {b : B} (hb : b ∈ e.baseSet) (y : F) :
259266 e ⟨b, e.symm b y⟩ = (b, y) := by
260267 rw [e.mk_symm hb, e.apply_symm_apply (e.mk_mem_target.mpr hb)]
@@ -420,6 +427,7 @@ protected theorem eqOn : EqOn (Prod.fst ∘ e) proj e.source := fun _x hx => e.c
420427
421428theorem mem_source : x ∈ e.source ↔ proj x ∈ e.baseSet := by rw [e.source_eq, mem_preimage]
422429
430+ @ [simp, mfld_simps]
423431theorem coe_fst' (ex : proj x ∈ e.baseSet) : (e x).1 = proj x :=
424432 e.coe_fst (e.mem_source.2 ex)
425433
@@ -455,10 +463,12 @@ theorem proj_symm_apply' {b : B} {x : F} (hx : b ∈ e.baseSet) :
455463theorem proj_surjOn_baseSet [Nonempty F] : Set.SurjOn proj e.source e.baseSet :=
456464 e.toPretrivialization.proj_surjOn_baseSet
457465
466+ @ [simp, mfld_simps]
458467theorem apply_symm_apply {x : B × F} (hx : x ∈ e.target) :
459468 e (e.toOpenPartialHomeomorph.symm x) = x :=
460469 e.toOpenPartialHomeomorph.right_inv hx
461470
471+ @ [simp, mfld_simps]
462472theorem apply_symm_apply' {b : B} {x : F} (hx : b ∈ e.baseSet) :
463473 e (e.toOpenPartialHomeomorph.symm (b, x)) = (b, x) :=
464474 e.toPretrivialization.apply_symm_apply' hx
@@ -633,13 +643,13 @@ protected theorem continuousOn : ContinuousOn e' e'.source :=
633643theorem coe_mem_source : ↑y ∈ e'.source ↔ b ∈ e'.baseSet :=
634644 e'.mem_source
635645
636- @ [simp, mfld_simps]
637646theorem coe_coe_fst (hb : b ∈ e'.baseSet) : (e' y).1 = b :=
638647 e'.coe_fst (e'.mem_source.2 hb)
639648
640649theorem mk_mem_target {y : F} : (b, y) ∈ e'.target ↔ b ∈ e'.baseSet :=
641650 e'.toPretrivialization.mem_target
642651
652+ @ [simp, mfld_simps]
643653theorem symm_apply_apply {x : TotalSpace F E} (hx : x ∈ e'.source) :
644654 e'.toOpenPartialHomeomorph.symm (e' x) = x :=
645655 e'.toPartialEquiv.left_inv hx
@@ -671,10 +681,12 @@ theorem mk_symm (e : Trivialization F (π F E)) {b : B} (hb : b ∈ e.baseSet) (
671681 TotalSpace.mk b (e.symm b y) = e.toOpenPartialHomeomorph.symm (b, y) :=
672682 e.toPretrivialization.mk_symm hb y
673683
684+ @ [simp, mfld_simps]
674685theorem symm_proj_apply (e : Trivialization F (π F E)) (z : TotalSpace F E)
675686 (hz : z.proj ∈ e.baseSet) : e.symm z.proj (e z).2 = z.2 :=
676687 e.toPretrivialization.symm_proj_apply z hz
677688
689+ @ [simp, mfld_simps]
678690theorem symm_apply_apply_mk (e : Trivialization F (π F E)) {b : B} (hb : b ∈ e.baseSet) (y : E b) :
679691 e.symm b (e ⟨b, y⟩).2 = y :=
680692 e.symm_proj_apply ⟨b, y⟩ hb
@@ -731,6 +743,7 @@ theorem coordChange_apply_snd (e₁ e₂ : Trivialization F proj) {p : Z} (h : p
731743 e₁.coordChange e₂ (proj p) (e₁ p).snd = (e₂ p).snd := by
732744 rw [coordChange, e₁.symm_apply_mk_proj (e₁.mem_source.2 h)]
733745
746+ @ [simp, mfld_simps]
734747theorem coordChange_same_apply (e : Trivialization F proj) {b : B} (h : b ∈ e.baseSet) (x : F) :
735748 e.coordChange e b x = x := by rw [coordChange, e.apply_symm_apply' h]
736749
@@ -888,7 +901,7 @@ noncomputable def piecewiseLe [LinearOrder B] [OrderTopology B] (e e' : Triviali
888901 e.piecewiseLeOfEq (e'.transFiberHomeomorph (e'.coordChangeHomeomorph e He' He)) a He He' <| by
889902 rintro p rfl
890903 ext1
891- · simp [e.coe_fst', e'.coe_fst', *]
904+ · simp [*]
892905 · simp [coordChange_apply_snd, *]
893906
894907open Classical in
0 commit comments