[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : e.toLocalEquiv = e'.toLocalEquiv
h₂ : e.baseSet = e'.baseSet
⊢ e = e'
[PROOFSTEP]
cases e
[GOAL]
case mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
e' : Pretrivialization F proj
toLocalEquiv✝ : LocalEquiv Z (B × F)
open_target✝ : IsOpen toLocalEquiv✝.target
baseSet✝ : Set B
open_baseSet✝ : IsOpen baseSet✝
source_eq✝ : toLocalEquiv✝.source = proj ⁻¹' baseSet✝
target_eq✝ : toLocalEquiv✝.target = baseSet✝ ×ˢ univ
proj_toFun✝ : ∀ (p : Z), p ∈ toLocalEquiv✝.source → (↑toLocalEquiv✝ p).fst = proj p
h₁ :
  { toLocalEquiv := toLocalEquiv✝, open_target := open_target✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.toLocalEquiv =
    e'.toLocalEquiv
h₂ :
  { toLocalEquiv := toLocalEquiv✝, open_target := open_target✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.baseSet =
    e'.baseSet
⊢ { toLocalEquiv := toLocalEquiv✝, open_target := open_target✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
      source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ } =
    e'
[PROOFSTEP]
cases e'
[GOAL]
case mk.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
toLocalEquiv✝¹ : LocalEquiv Z (B × F)
open_target✝¹ : IsOpen toLocalEquiv✝¹.target
baseSet✝¹ : Set B
open_baseSet✝¹ : IsOpen baseSet✝¹
source_eq✝¹ : toLocalEquiv✝¹.source = proj ⁻¹' baseSet✝¹
target_eq✝¹ : toLocalEquiv✝¹.target = baseSet✝¹ ×ˢ univ
proj_toFun✝¹ : ∀ (p : Z), p ∈ toLocalEquiv✝¹.source → (↑toLocalEquiv✝¹ p).fst = proj p
toLocalEquiv✝ : LocalEquiv Z (B × F)
open_target✝ : IsOpen toLocalEquiv✝.target
baseSet✝ : Set B
open_baseSet✝ : IsOpen baseSet✝
source_eq✝ : toLocalEquiv✝.source = proj ⁻¹' baseSet✝
target_eq✝ : toLocalEquiv✝.target = baseSet✝ ×ˢ univ
proj_toFun✝ : ∀ (p : Z), p ∈ toLocalEquiv✝.source → (↑toLocalEquiv✝ p).fst = proj p
h₁ :
  { toLocalEquiv := toLocalEquiv✝¹, open_target := open_target✝¹, baseSet := baseSet✝¹, open_baseSet := open_baseSet✝¹,
        source_eq := source_eq✝¹, target_eq := target_eq✝¹, proj_toFun := proj_toFun✝¹ }.toLocalEquiv =
    { toLocalEquiv := toLocalEquiv✝, open_target := open_target✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.toLocalEquiv
h₂ :
  { toLocalEquiv := toLocalEquiv✝¹, open_target := open_target✝¹, baseSet := baseSet✝¹, open_baseSet := open_baseSet✝¹,
        source_eq := source_eq✝¹, target_eq := target_eq✝¹, proj_toFun := proj_toFun✝¹ }.baseSet =
    { toLocalEquiv := toLocalEquiv✝, open_target := open_target✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.baseSet
⊢ { toLocalEquiv := toLocalEquiv✝¹, open_target := open_target✝¹, baseSet := baseSet✝¹, open_baseSet := open_baseSet✝¹,
      source_eq := source_eq✝¹, target_eq := target_eq✝¹, proj_toFun := proj_toFun✝¹ } =
    { toLocalEquiv := toLocalEquiv✝, open_target := open_target✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
      source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }
[PROOFSTEP]
congr
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
⊢ e = e'
[PROOFSTEP]
ext1 <;> [ext1; exact h₃]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
⊢ e = e'
[PROOFSTEP]
ext1
[GOAL]
case h₁
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
⊢ e.toLocalEquiv = e'.toLocalEquiv
[PROOFSTEP]
ext1
[GOAL]
case h₂
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
⊢ e.baseSet = e'.baseSet
[PROOFSTEP]
exact h₃
[GOAL]
case h₁.h
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
x✝ : Z
⊢ ↑e.toLocalEquiv x✝ = ↑e'.toLocalEquiv x✝
[PROOFSTEP]
apply h₁
[GOAL]
case h₁.hsymm
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
x✝ : B × F
⊢ ↑(LocalEquiv.symm e.toLocalEquiv) x✝ = ↑(LocalEquiv.symm e'.toLocalEquiv) x✝
[PROOFSTEP]
apply h₂
[GOAL]
case h₁.hs
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
h₁ : ∀ (x : Z), ↑e x = ↑e' x
h₂ : ∀ (x : B × F), ↑(LocalEquiv.symm e.toLocalEquiv) x = ↑(LocalEquiv.symm e'.toLocalEquiv) x
h₃ : e.baseSet = e'.baseSet
⊢ e.source = e'.source
[PROOFSTEP]
rw [e.source_eq, e'.source_eq, h₃]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
inst✝ : Nonempty F
e e' : Pretrivialization F proj
h : e.toLocalEquiv = e'.toLocalEquiv
⊢ e = e'
[PROOFSTEP]
refine ext' _ _ h ?_
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
inst✝ : Nonempty F
e e' : Pretrivialization F proj
h : e.toLocalEquiv = e'.toLocalEquiv
⊢ e.baseSet = e'.baseSet
[PROOFSTEP]
simpa only [fst_image_prod, univ_nonempty, target_eq] using congr_arg (Prod.fst '' LocalEquiv.target ·) h
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
⊢ x ∈ e.source ↔ proj x ∈ e.baseSet
[PROOFSTEP]
rw [e.source_eq, mem_preimage]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
x : B × F
⊢ x ∈ e.target ↔ x.fst ∈ e.baseSet
[PROOFSTEP]
rw [e.target_eq, prod_univ, mem_preimage]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
x : B × F
hx : x ∈ e.target
⊢ proj (↑(LocalEquiv.symm e.toLocalEquiv) x) = x.fst
[PROOFSTEP]
have := (e.coe_fst (e.map_target hx)).symm
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
x : B × F
hx : x ∈ e.target
this : proj (↑(LocalEquiv.symm e.toLocalEquiv) x) = (↑e (↑(LocalEquiv.symm e.toLocalEquiv) x)).fst
⊢ proj (↑(LocalEquiv.symm e.toLocalEquiv) x) = x.fst
[PROOFSTEP]
rwa [← e.coe_coe, e.right_inv hx] at this
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ x : Z
ex : x ∈ e.source
⊢ ↑(LocalEquiv.symm e.toLocalEquiv) (proj x, (↑e x).snd) = x
[PROOFSTEP]
rw [← e.coe_fst ex, Prod.mk.eta, ← e.coe_coe, e.left_inv ex]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
⊢ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' e.baseSet) ∩ e.target = e.target
[PROOFSTEP]
refine' inter_eq_right_iff_subset.mpr fun x hx => _
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
x : B × F
hx : x ∈ e.target
⊢ x ∈ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' e.baseSet)
[PROOFSTEP]
simp only [mem_preimage, LocalEquiv.invFun_as_coe, e.proj_symm_apply hx]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
x : B × F
hx : x ∈ e.target
⊢ x.fst ∈ e.baseSet
[PROOFSTEP]
exact e.mem_target.mp hx
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
s : Set B
⊢ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ = (s ∩ e.baseSet) ×ˢ univ
[PROOFSTEP]
ext ⟨x, y⟩
[GOAL]
case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ (x, y) ∈ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ
[PROOFSTEP]
suffices x ∈ e.baseSet → (proj (e.toLocalEquiv.symm (x, y)) ∈ s ↔ x ∈ s) by
  simpa only [prod_mk_mem_set_prod_eq, mem_inter_iff, and_true_iff, mem_univ, and_congr_left_iff]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
this : x ∈ e.baseSet → (proj (↑(LocalEquiv.symm e.toLocalEquiv) (x, y)) ∈ s ↔ x ∈ s)
⊢ (x, y) ∈ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ
[PROOFSTEP]
simpa only [prod_mk_mem_set_prod_eq, mem_inter_iff, and_true_iff, mem_univ, and_congr_left_iff]
[GOAL]
case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ x ∈ e.baseSet → (proj (↑(LocalEquiv.symm e.toLocalEquiv) (x, y)) ∈ s ↔ x ∈ s)
[PROOFSTEP]
intro h
[GOAL]
case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
h : x ∈ e.baseSet
⊢ proj (↑(LocalEquiv.symm e.toLocalEquiv) (x, y)) ∈ s ↔ x ∈ s
[PROOFSTEP]
rw [e.proj_symm_apply' h]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e f : Pretrivialization F proj
⊢ f.target ∩ ↑(LocalEquiv.symm f.toLocalEquiv) ⁻¹' e.source = (e.baseSet ∩ f.baseSet) ×ˢ univ
[PROOFSTEP]
rw [inter_comm, f.target_eq, e.source_eq, f.preimage_symm_proj_inter]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e f : Pretrivialization F proj
⊢ (LocalEquiv.trans (LocalEquiv.symm f.toLocalEquiv) e.toLocalEquiv).source = (e.baseSet ∩ f.baseSet) ×ˢ univ
[PROOFSTEP]
rw [LocalEquiv.trans_source, LocalEquiv.symm_source, e.target_inter_preimage_symm_source_eq]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
⊢ LocalEquiv.symm (LocalEquiv.trans (LocalEquiv.symm e.toLocalEquiv) e'.toLocalEquiv) =
    LocalEquiv.trans (LocalEquiv.symm e'.toLocalEquiv) e.toLocalEquiv
[PROOFSTEP]
rw [LocalEquiv.trans_symm_eq_symm_trans_symm, LocalEquiv.symm_symm]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
⊢ (LocalEquiv.trans (LocalEquiv.symm e.toLocalEquiv) e'.toLocalEquiv).source = (e.baseSet ∩ e'.baseSet) ×ˢ univ
[PROOFSTEP]
rw [LocalEquiv.trans_source, e'.source_eq, LocalEquiv.symm_source, e.target_eq, inter_comm, e.preimage_symm_proj_inter,
  inter_comm]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e e' : Pretrivialization F proj
⊢ (LocalEquiv.trans (LocalEquiv.symm e.toLocalEquiv) e'.toLocalEquiv).target = (e.baseSet ∩ e'.baseSet) ×ˢ univ
[PROOFSTEP]
rw [← LocalEquiv.symm_source, symm_trans_symm, symm_trans_source_eq, inter_comm]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e' : Pretrivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝ : (x : B) → Zero (E x)
e : Pretrivialization F TotalSpace.proj
b : B
hb : b ∈ e.baseSet
y : F
⊢ { proj := b, snd := Pretrivialization.symm e b y } = ↑(LocalEquiv.symm e.toLocalEquiv) (b, y)
[PROOFSTEP]
simp only [e.symm_apply hb, TotalSpace.mk_cast (e.proj_symm_apply' hb), TotalSpace.eta]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e' : Pretrivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Pretrivialization F TotalSpace.proj
z : TotalSpace F E
hz : z.proj ∈ e.baseSet
⊢ Pretrivialization.symm e z.proj (↑e z).snd = z.snd
[PROOFSTEP]
rw [e.symm_apply hz, cast_eq_iff_heq, e.mk_proj_snd' hz, e.symm_apply_apply (e.mem_source.mpr hz)]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
proj : Z → B
e✝ : Pretrivialization F proj
x : Z
e' : Pretrivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝ : (x : B) → Zero (E x)
e : Pretrivialization F TotalSpace.proj
b : B
hb : b ∈ e.baseSet
y : F
⊢ ↑e { proj := b, snd := Pretrivialization.symm e b y } = (b, y)
[PROOFSTEP]
rw [e.mk_symm hb, e.apply_symm_apply (e.mk_mem_target.mpr hb)]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e e' : Trivialization F proj
h₁ : e.toLocalHomeomorph = e'.toLocalHomeomorph
h₂ : e.baseSet = e'.baseSet
⊢ e = e'
[PROOFSTEP]
cases e
[GOAL]
case mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
e' : Trivialization F proj
toLocalHomeomorph✝ : LocalHomeomorph Z (B × F)
baseSet✝ : Set B
open_baseSet✝ : IsOpen baseSet✝
source_eq✝ : toLocalHomeomorph✝.source = proj ⁻¹' baseSet✝
target_eq✝ : toLocalHomeomorph✝.target = baseSet✝ ×ˢ univ
proj_toFun✝ : ∀ (p : Z), p ∈ toLocalHomeomorph✝.source → (↑toLocalHomeomorph✝ p).fst = proj p
h₁ :
  { toLocalHomeomorph := toLocalHomeomorph✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.toLocalHomeomorph =
    e'.toLocalHomeomorph
h₂ :
  { toLocalHomeomorph := toLocalHomeomorph✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.baseSet =
    e'.baseSet
⊢ { toLocalHomeomorph := toLocalHomeomorph✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
      source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ } =
    e'
[PROOFSTEP]
cases e'
[GOAL]
case mk.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
toLocalHomeomorph✝¹ : LocalHomeomorph Z (B × F)
baseSet✝¹ : Set B
open_baseSet✝¹ : IsOpen baseSet✝¹
source_eq✝¹ : toLocalHomeomorph✝¹.source = proj ⁻¹' baseSet✝¹
target_eq✝¹ : toLocalHomeomorph✝¹.target = baseSet✝¹ ×ˢ univ
proj_toFun✝¹ : ∀ (p : Z), p ∈ toLocalHomeomorph✝¹.source → (↑toLocalHomeomorph✝¹ p).fst = proj p
toLocalHomeomorph✝ : LocalHomeomorph Z (B × F)
baseSet✝ : Set B
open_baseSet✝ : IsOpen baseSet✝
source_eq✝ : toLocalHomeomorph✝.source = proj ⁻¹' baseSet✝
target_eq✝ : toLocalHomeomorph✝.target = baseSet✝ ×ˢ univ
proj_toFun✝ : ∀ (p : Z), p ∈ toLocalHomeomorph✝.source → (↑toLocalHomeomorph✝ p).fst = proj p
h₁ :
  { toLocalHomeomorph := toLocalHomeomorph✝¹, baseSet := baseSet✝¹, open_baseSet := open_baseSet✝¹,
        source_eq := source_eq✝¹, target_eq := target_eq✝¹, proj_toFun := proj_toFun✝¹ }.toLocalHomeomorph =
    { toLocalHomeomorph := toLocalHomeomorph✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.toLocalHomeomorph
h₂ :
  { toLocalHomeomorph := toLocalHomeomorph✝¹, baseSet := baseSet✝¹, open_baseSet := open_baseSet✝¹,
        source_eq := source_eq✝¹, target_eq := target_eq✝¹, proj_toFun := proj_toFun✝¹ }.baseSet =
    { toLocalHomeomorph := toLocalHomeomorph✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
        source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }.baseSet
⊢ { toLocalHomeomorph := toLocalHomeomorph✝¹, baseSet := baseSet✝¹, open_baseSet := open_baseSet✝¹,
      source_eq := source_eq✝¹, target_eq := target_eq✝¹, proj_toFun := proj_toFun✝¹ } =
    { toLocalHomeomorph := toLocalHomeomorph✝, baseSet := baseSet✝, open_baseSet := open_baseSet✝,
      source_eq := source_eq✝, target_eq := target_eq✝, proj_toFun := proj_toFun✝ }
[PROOFSTEP]
congr
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e e' : Trivialization F proj
h : (fun e => toPretrivialization e) e = (fun e => toPretrivialization e) e'
⊢ e = e'
[PROOFSTEP]
ext1
[GOAL]
case h₁
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e e' : Trivialization F proj
h : (fun e => toPretrivialization e) e = (fun e => toPretrivialization e) e'
⊢ e.toLocalHomeomorph = e'.toLocalHomeomorph
case h₂
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e e' : Trivialization F proj
h : (fun e => toPretrivialization e) e = (fun e => toPretrivialization e) e'
⊢ e.baseSet = e'.baseSet
[PROOFSTEP]
exacts [LocalHomeomorph.toLocalEquiv_injective (congr_arg Pretrivialization.toLocalEquiv h),
  congr_arg Pretrivialization.baseSet h]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
⊢ x ∈ e.source ↔ proj x ∈ e.baseSet
[PROOFSTEP]
rw [e.source_eq, mem_preimage]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
ex : x ∈ e.source
⊢ map proj (𝓝 x) = 𝓝 (proj x)
[PROOFSTEP]
rw [← e.coe_fst ex, ← map_congr (e.coe_fst_eventuallyEq_proj ex), ← map_map, ← e.coe_coe, e.map_nhds_eq ex,
  map_fst_nhds]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
⊢ Tendsto f l (𝓝 z) ↔ Tendsto (proj ∘ f) l (𝓝 (proj z)) ∧ Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
rw [e.nhds_eq_comap_inf_principal hz, tendsto_inf, tendsto_comap_iff, Prod.tendsto_iff, coe_coe, tendsto_principal,
  coe_fst _ hz]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
⊢ ((Tendsto (fun n => ((↑e ∘ f) n).fst) l (𝓝 (proj z)) ∧ Tendsto (fun n => ((↑e ∘ f) n).snd) l (𝓝 (↑e z).snd)) ∧
      ∀ᶠ (a : α) in l, f a ∈ e.source) ↔
    Tendsto (proj ∘ f) l (𝓝 (proj z)) ∧ Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
by_cases hl : ∀ᶠ x in l, f x ∈ e.source
[GOAL]
case pos
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
hl : ∀ᶠ (x : α) in l, f x ∈ e.source
⊢ ((Tendsto (fun n => ((↑e ∘ f) n).fst) l (𝓝 (proj z)) ∧ Tendsto (fun n => ((↑e ∘ f) n).snd) l (𝓝 (↑e z).snd)) ∧
      ∀ᶠ (a : α) in l, f a ∈ e.source) ↔
    Tendsto (proj ∘ f) l (𝓝 (proj z)) ∧ Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
simp only [hl, and_true]
[GOAL]
case pos
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
hl : ∀ᶠ (x : α) in l, f x ∈ e.source
⊢ Tendsto (fun n => ((↑e ∘ f) n).fst) l (𝓝 (proj z)) ∧ Tendsto (fun n => ((↑e ∘ f) n).snd) l (𝓝 (↑e z).snd) ↔
    Tendsto (proj ∘ f) l (𝓝 (proj z)) ∧ Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
refine (tendsto_congr' ?_).and Iff.rfl
[GOAL]
case pos
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
hl : ∀ᶠ (x : α) in l, f x ∈ e.source
⊢ (fun n => ((↑e ∘ f) n).fst) =ᶠ[l] proj ∘ f
[PROOFSTEP]
exact hl.mono fun x ↦ e.coe_fst
[GOAL]
case neg
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
hl : ¬∀ᶠ (x : α) in l, f x ∈ e.source
⊢ ((Tendsto (fun n => ((↑e ∘ f) n).fst) l (𝓝 (proj z)) ∧ Tendsto (fun n => ((↑e ∘ f) n).snd) l (𝓝 (↑e z).snd)) ∧
      ∀ᶠ (a : α) in l, f a ∈ e.source) ↔
    Tendsto (proj ∘ f) l (𝓝 (proj z)) ∧ Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
simp only [hl, and_false, false_iff, not_and]
[GOAL]
case neg
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ e.source
hl : ¬∀ᶠ (x : α) in l, f x ∈ e.source
⊢ Tendsto (proj ∘ f) l (𝓝 (proj z)) → ¬Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
rw [e.source_eq] at hl hz
[GOAL]
case neg
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
α : Type u_6
l : Filter α
f : α → Z
z : Z
hz : z ∈ proj ⁻¹' e.baseSet
hl : ¬∀ᶠ (x : α) in l, f x ∈ proj ⁻¹' e.baseSet
⊢ Tendsto (proj ∘ f) l (𝓝 (proj z)) → ¬Tendsto (fun x => (↑e (f x)).snd) l (𝓝 (↑e z).snd)
[PROOFSTEP]
exact fun h _ ↦ hl <| h <| e.open_baseSet.mem_nhds hz
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
⊢ 𝓝 z = comap proj (𝓝 (proj z)) ⊓ comap (Prod.snd ∘ ↑e) (𝓝 (↑e z).snd)
[PROOFSTEP]
refine eq_of_forall_le_iff fun l ↦ ?_
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
l : Filter Z
⊢ l ≤ 𝓝 z ↔ l ≤ comap proj (𝓝 (proj z)) ⊓ comap (Prod.snd ∘ ↑e) (𝓝 (↑e z).snd)
[PROOFSTEP]
rw [le_inf_iff, ← tendsto_iff_comap, ← tendsto_iff_comap]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
l : Filter Z
⊢ l ≤ 𝓝 z ↔ Tendsto proj l (𝓝 (proj z)) ∧ Tendsto (Prod.snd ∘ ↑e) l (𝓝 (↑e z).snd)
[PROOFSTEP]
exact e.tendsto_nhds_iff hz
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
b : B
hb : b ∈ e.baseSet
p : F
⊢ ↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, p) ∈ proj ⁻¹' {b}
[PROOFSTEP]
rw [mem_preimage, e.proj_symm_apply' hb, mem_singleton_iff]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
Z' : Type u_6
inst✝ : TopologicalSpace Z'
h : Z' ≃ₜ Z
⊢ (LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph).toLocalEquiv.source =
    proj ∘ ↑h ⁻¹' e.baseSet
[PROOFSTEP]
simp [source_eq, preimage_preimage, (· ∘ ·)]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
Z' : Type u_6
inst✝ : TopologicalSpace Z'
h : Z' ≃ₜ Z
⊢ (LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph).toLocalEquiv.target = e.baseSet ×ˢ univ
[PROOFSTEP]
simp [target_eq]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
Z' : Type u_6
inst✝ : TopologicalSpace Z'
h : Z' ≃ₜ Z
p : Z'
hp : p ∈ (LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph).toLocalEquiv.source
⊢ (↑(LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph) p).fst = (proj ∘ ↑h) p
[PROOFSTEP]
have hp : h p ∈ e.source := by simpa using hp
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
Z' : Type u_6
inst✝ : TopologicalSpace Z'
h : Z' ≃ₜ Z
p : Z'
hp : p ∈ (LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph).toLocalEquiv.source
⊢ ↑h p ∈ e.source
[PROOFSTEP]
simpa using hp
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
Z' : Type u_6
inst✝ : TopologicalSpace Z'
h : Z' ≃ₜ Z
p : Z'
hp✝ : p ∈ (LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph).toLocalEquiv.source
hp : ↑h p ∈ e.source
⊢ (↑(LocalHomeomorph.trans (Homeomorph.toLocalHomeomorph h) e.toLocalHomeomorph) p).fst = (proj ∘ ↑h) p
[PROOFSTEP]
simp [hp]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : Z → X
z : Z
e : Trivialization F proj
he : proj z ∈ e.baseSet
hf : ContinuousAt (f ∘ ↑(LocalEquiv.symm e.toLocalEquiv)) (↑e z)
⊢ ContinuousAt f z
[PROOFSTEP]
have hez : z ∈ e.toLocalEquiv.symm.target :=
  by
  rw [LocalEquiv.symm_target, e.mem_source]
  exact he
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : Z → X
z : Z
e : Trivialization F proj
he : proj z ∈ e.baseSet
hf : ContinuousAt (f ∘ ↑(LocalEquiv.symm e.toLocalEquiv)) (↑e z)
⊢ z ∈ (LocalEquiv.symm e.toLocalEquiv).target
[PROOFSTEP]
rw [LocalEquiv.symm_target, e.mem_source]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : Z → X
z : Z
e : Trivialization F proj
he : proj z ∈ e.baseSet
hf : ContinuousAt (f ∘ ↑(LocalEquiv.symm e.toLocalEquiv)) (↑e z)
⊢ proj z ∈ e.baseSet
[PROOFSTEP]
exact he
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : Z → X
z : Z
e : Trivialization F proj
he : proj z ∈ e.baseSet
hf : ContinuousAt (f ∘ ↑(LocalEquiv.symm e.toLocalEquiv)) (↑e z)
hez : z ∈ (LocalEquiv.symm e.toLocalEquiv).target
⊢ ContinuousAt f z
[PROOFSTEP]
rwa [e.toLocalHomeomorph.symm.continuousAt_iff_continuousAt_comp_right hez, LocalHomeomorph.symm_symm]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : X → Z
x : X
e : Trivialization F proj
hf_proj : ContinuousAt (proj ∘ f) x
he : proj (f x) ∈ e.baseSet
hf : ContinuousAt (↑e ∘ f) x
⊢ ContinuousAt f x
[PROOFSTEP]
rw [e.continuousAt_iff_continuousAt_comp_left]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : X → Z
x : X
e : Trivialization F proj
hf_proj : ContinuousAt (proj ∘ f) x
he : proj (f x) ∈ e.baseSet
hf : ContinuousAt (↑e ∘ f) x
⊢ ContinuousAt (↑e.toLocalHomeomorph ∘ f) x
[PROOFSTEP]
exact hf
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : X → Z
x : X
e : Trivialization F proj
hf_proj : ContinuousAt (proj ∘ f) x
he : proj (f x) ∈ e.baseSet
hf : ContinuousAt (↑e ∘ f) x
⊢ f ⁻¹' e.source ∈ 𝓝 x
[PROOFSTEP]
rw [e.source_eq, ← preimage_comp]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
X : Type u_6
inst✝ : TopologicalSpace X
f : X → Z
x : X
e : Trivialization F proj
hf_proj : ContinuousAt (proj ∘ f) x
he : proj (f x) ∈ e.baseSet
hf : ContinuousAt (↑e ∘ f) x
⊢ proj ∘ f ⁻¹' e.baseSet ∈ 𝓝 x
[PROOFSTEP]
exact hf_proj.preimage_mem_nhds (e.open_baseSet.mem_nhds he)
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Trivialization F TotalSpace.proj
⊢ ContinuousOn (fun z => TotalSpace.mk' F z.fst (Trivialization.symm e z.fst z.snd)) (e.baseSet ×ˢ univ)
[PROOFSTEP]
have : ∀ z ∈ e.baseSet ×ˢ (univ : Set F), TotalSpace.mk z.1 (e.symm z.1 z.2) = e.toLocalHomeomorph.symm z :=
  by
  rintro x ⟨hx : x.1 ∈ e.baseSet, _⟩
  rw [e.mk_symm hx]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Trivialization F TotalSpace.proj
⊢ ∀ (z : B × F),
    z ∈ e.baseSet ×ˢ univ →
      { proj := z.fst, snd := Trivialization.symm e z.fst z.snd } = ↑(LocalHomeomorph.symm e.toLocalHomeomorph) z
[PROOFSTEP]
rintro x ⟨hx : x.1 ∈ e.baseSet, _⟩
[GOAL]
case intro
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Trivialization F TotalSpace.proj
x : B × F
hx : x.fst ∈ e.baseSet
right✝ : x.snd ∈ univ
⊢ { proj := x.fst, snd := Trivialization.symm e x.fst x.snd } = ↑(LocalHomeomorph.symm e.toLocalHomeomorph) x
[PROOFSTEP]
rw [e.mk_symm hx]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Trivialization F TotalSpace.proj
this :
  ∀ (z : B × F),
    z ∈ e.baseSet ×ˢ univ →
      { proj := z.fst, snd := Trivialization.symm e z.fst z.snd } = ↑(LocalHomeomorph.symm e.toLocalHomeomorph) z
⊢ ContinuousOn (fun z => TotalSpace.mk' F z.fst (Trivialization.symm e z.fst z.snd)) (e.baseSet ×ˢ univ)
[PROOFSTEP]
refine' ContinuousOn.congr _ this
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Trivialization F TotalSpace.proj
this :
  ∀ (z : B × F),
    z ∈ e.baseSet ×ˢ univ →
      { proj := z.fst, snd := Trivialization.symm e z.fst z.snd } = ↑(LocalHomeomorph.symm e.toLocalHomeomorph) z
⊢ ContinuousOn (fun x => ↑(LocalHomeomorph.symm e.toLocalHomeomorph) x) (e.baseSet ×ˢ univ)
[PROOFSTEP]
rw [← e.target_eq]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
inst✝ : (x : B) → Zero (E x)
e : Trivialization F TotalSpace.proj
this :
  ∀ (z : B × F),
    z ∈ e.baseSet ×ˢ univ →
      { proj := z.fst, snd := Trivialization.symm e z.fst z.snd } = ↑(LocalHomeomorph.symm e.toLocalHomeomorph) z
⊢ ContinuousOn (fun x => ↑(LocalHomeomorph.symm e.toLocalHomeomorph) x) e.target
[PROOFSTEP]
exact e.toLocalHomeomorph.continuousOn_symm
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
F' : Type u_6
inst✝ : TopologicalSpace F'
e : Trivialization F proj
h : F ≃ₜ F'
⊢ (LocalHomeomorph.transHomeomorph e.toLocalHomeomorph
          (Homeomorph.prodCongr (Homeomorph.refl B) h)).toLocalEquiv.target =
    e.baseSet ×ˢ univ
[PROOFSTEP]
simp [target_eq, prod_univ, preimage_preimage]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ (b, coordChange e₁ e₂ b x) = ↑e₂ (↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x))
[PROOFSTEP]
refine' Prod.ext _ rfl
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ (b, coordChange e₁ e₂ b x).fst = (↑e₂ (↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x))).fst
[PROOFSTEP]
rw [e₂.coe_fst', ← e₁.coe_fst', e₁.apply_symm_apply' h₁]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ proj (↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x)) ∈ e₁.baseSet
[PROOFSTEP]
rwa [e₁.proj_symm_apply' h₁]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ proj (↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x)) ∈ e₂.baseSet
[PROOFSTEP]
rwa [e₁.proj_symm_apply' h₁]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
e₁ e₂ : Trivialization F proj
p : Z
h : proj p ∈ e₁.baseSet
⊢ coordChange e₁ e₂ (proj p) (↑e₁ p).snd = (↑e₂ p).snd
[PROOFSTEP]
rw [coordChange, e₁.symm_apply_mk_proj (e₁.mem_source.2 h)]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e : Trivialization F proj
b : B
h : b ∈ e.baseSet
x : F
⊢ coordChange e e b x = x
[PROOFSTEP]
rw [coordChange, e.apply_symm_apply' h]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ e₃ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ coordChange e₂ e₃ b (coordChange e₁ e₂ b x) = coordChange e₁ e₃ b x
[PROOFSTEP]
rw [coordChange, e₁.mk_coordChange _ h₁ h₂, ← e₂.coe_coe, e₂.left_inv, coordChange]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ e₃ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ ↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x) ∈ e₂.source
[PROOFSTEP]
rwa [e₂.mem_source, e₁.proj_symm_apply' h₁]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
⊢ Continuous (coordChange e₁ e₂ b)
[PROOFSTEP]
refine'
  continuous_snd.comp
    (e₂.toLocalHomeomorph.continuousOn.comp_continuous (e₁.toLocalHomeomorph.continuousOn_symm.comp_continuous _ _) _)
[GOAL]
case refine'_1
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
⊢ Continuous fun x => (b, x)
[PROOFSTEP]
exact continuous_const.prod_mk continuous_id
[GOAL]
case refine'_2
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
⊢ ∀ (x : F), (b, x) ∈ e₁.target
[PROOFSTEP]
exact fun x => e₁.mem_target.2 h₁
[GOAL]
case refine'_3
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
⊢ ∀ (x : F), ↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x) ∈ e₂.source
[PROOFSTEP]
intro x
[GOAL]
case refine'_3
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ ↑(LocalHomeomorph.symm e₁.toLocalHomeomorph) (b, x) ∈ e₂.source
[PROOFSTEP]
rwa [e₂.mem_source, e₁.proj_symm_apply' h₁]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ coordChange e₂ e₁ b (coordChange e₁ e₂ b x) = x
[PROOFSTEP]
simp only [*, coordChange_coordChange, coordChange_same_apply]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e₁ e₂ : Trivialization F proj
b : B
h₁ : b ∈ e₁.baseSet
h₂ : b ∈ e₂.baseSet
x : F
⊢ coordChange e₁ e₂ b (coordChange e₂ e₁ b x) = x
[PROOFSTEP]
simp only [*, coordChange_coordChange, coordChange_same_apply]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e : Trivialization F proj
s : Set B
x : Z
hx : x ∈ e.source
⊢ ↑e.toLocalHomeomorph x ∈ s ×ˢ univ ↔ x ∈ proj ⁻¹' s
[PROOFSTEP]
simp [e.coe_fst', hx]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e : Trivialization F proj
s : Set B
hs : IsOpen s
⊢ (LocalHomeomorph.symm
          (LocalHomeomorph.IsImage.restr
            (_ : LocalHomeomorph.IsImage (LocalHomeomorph.symm e.toLocalHomeomorph) (s ×ˢ univ) (proj ⁻¹' s))
            (_ :
              IsOpen
                ((LocalHomeomorph.symm e.toLocalHomeomorph).toLocalEquiv.source ∩ s ×ˢ univ)))).toLocalEquiv.source =
    proj ⁻¹' (e.baseSet ∩ s)
[PROOFSTEP]
simp [source_eq]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e : Trivialization F proj
s : Set B
hs : IsOpen s
⊢ (LocalHomeomorph.symm
          (LocalHomeomorph.IsImage.restr
            (_ : LocalHomeomorph.IsImage (LocalHomeomorph.symm e.toLocalHomeomorph) (s ×ˢ univ) (proj ⁻¹' s))
            (_ :
              IsOpen
                ((LocalHomeomorph.symm e.toLocalHomeomorph).toLocalEquiv.source ∩ s ×ˢ univ)))).toLocalEquiv.target =
    (e.baseSet ∩ s) ×ˢ univ
[PROOFSTEP]
simp [target_eq, prod_univ]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e : Trivialization F proj
s : Set B
⊢ e.source ∩ frontier (proj ⁻¹' s) = proj ⁻¹' (e.baseSet ∩ frontier s)
[PROOFSTEP]
rw [← (e.isImage_preimage_prod s).frontier.preimage_eq, frontier_prod_univ_eq, (e.isImage_preimage_prod _).preimage_eq,
  e.source_eq, preimage_inter]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
⊢ e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s)
[PROOFSTEP]
rw [e.frontier_preimage, e'.frontier_preimage, Hs]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
⊢ EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph) (e.source ∩ frontier (proj ⁻¹' s))
[PROOFSTEP]
rwa [e.frontier_preimage]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
⊢ (LocalHomeomorph.piecewise e.toLocalHomeomorph e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ)
          (_ : LocalHomeomorph.IsImage e.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
          (_ : LocalHomeomorph.IsImage e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
          (_ : e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s))
          (_ :
            EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph)
              (e.source ∩ frontier (proj ⁻¹' s)))).toLocalEquiv.source =
    proj ⁻¹' Set.ite s e.baseSet e'.baseSet
[PROOFSTEP]
simp [source_eq]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
⊢ (LocalHomeomorph.piecewise e.toLocalHomeomorph e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ)
          (_ : LocalHomeomorph.IsImage e.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
          (_ : LocalHomeomorph.IsImage e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
          (_ : e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s))
          (_ :
            EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph)
              (e.source ∩ frontier (proj ⁻¹' s)))).toLocalEquiv.target =
    Set.ite s e.baseSet e'.baseSet ×ˢ univ
[PROOFSTEP]
simp [target_eq, prod_univ]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
p : Z
⊢ p ∈
      (LocalHomeomorph.piecewise e.toLocalHomeomorph e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ)
            (_ : LocalHomeomorph.IsImage e.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
            (_ : LocalHomeomorph.IsImage e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
            (_ : e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s))
            (_ :
              EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph)
                (e.source ∩ frontier (proj ⁻¹' s)))).toLocalEquiv.source →
    (↑(LocalHomeomorph.piecewise e.toLocalHomeomorph e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ)
              (_ : LocalHomeomorph.IsImage e.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
              (_ : LocalHomeomorph.IsImage e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
              (_ : e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s))
              (_ : EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph) (e.source ∩ frontier (proj ⁻¹' s))))
          p).fst =
      proj p
[PROOFSTEP]
rintro
  (⟨he, hs⟩ | ⟨he, hs⟩)
      -- porting note: was `<;> simp [*]`
[GOAL]
case inl.intro
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
p : Z
he : p ∈ e.source
hs : p ∈ proj ⁻¹' s
⊢ (↑(LocalHomeomorph.piecewise e.toLocalHomeomorph e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ)
            (_ : LocalHomeomorph.IsImage e.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
            (_ : LocalHomeomorph.IsImage e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
            (_ : e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s))
            (_ : EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph) (e.source ∩ frontier (proj ⁻¹' s))))
        p).fst =
    proj p
[PROOFSTEP]
simp [piecewise_eq_of_mem _ _ _ hs, *]
[GOAL]
case inr.intro
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
s : Set B
Hs : e.baseSet ∩ frontier s = e'.baseSet ∩ frontier s
Heq : EqOn (↑e) (↑e') (proj ⁻¹' (e.baseSet ∩ frontier s))
p : Z
he : p ∈ e'.source
hs : ¬p ∈ proj ⁻¹' s
⊢ (↑(LocalHomeomorph.piecewise e.toLocalHomeomorph e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ)
            (_ : LocalHomeomorph.IsImage e.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
            (_ : LocalHomeomorph.IsImage e'.toLocalHomeomorph (proj ⁻¹' s) (s ×ˢ univ))
            (_ : e.source ∩ frontier (proj ⁻¹' s) = e'.source ∩ frontier (proj ⁻¹' s))
            (_ : EqOn (↑e.toLocalHomeomorph) (↑e'.toLocalHomeomorph) (e.source ∩ frontier (proj ⁻¹' s))))
        p).fst =
    proj p
[PROOFSTEP]
simp [piecewise_eq_of_not_mem _ _ _ hs, *]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace F
proj : Z → B
inst✝⁴ : TopologicalSpace Z
inst✝³ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝² : TopologicalSpace B'
inst✝¹ : LinearOrder B
inst✝ : OrderTopology B
e e' : Trivialization F proj
a : B
He : a ∈ e.baseSet
He' : a ∈ e'.baseSet
Heq : ∀ (p : Z), proj p = a → ↑e p = ↑e' p
x : B
hx : x ∈ frontier (Iic a)
⊢ x ∈ e.baseSet ↔ x ∈ e'.baseSet
[PROOFSTEP]
obtain rfl : x = a := mem_singleton_iff.1 (frontier_Iic_subset _ hx)
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace F
proj : Z → B
inst✝⁴ : TopologicalSpace Z
inst✝³ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝² : TopologicalSpace B'
inst✝¹ : LinearOrder B
inst✝ : OrderTopology B
e e' : Trivialization F proj
x : B
He : x ∈ e.baseSet
He' : x ∈ e'.baseSet
Heq : ∀ (p : Z), proj p = x → ↑e p = ↑e' p
hx : x ∈ frontier (Iic x)
⊢ x ∈ e.baseSet ↔ x ∈ e'.baseSet
[PROOFSTEP]
simp [He, He']
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace F
proj : Z → B
inst✝⁴ : TopologicalSpace Z
inst✝³ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝² : TopologicalSpace B'
inst✝¹ : LinearOrder B
inst✝ : OrderTopology B
e e' : Trivialization F proj
a : B
He : a ∈ e.baseSet
He' : a ∈ e'.baseSet
⊢ ∀ (p : Z), proj p = a → ↑e p = ↑(transFiberHomeomorph e' (Trivialization.coordChangeHomeomorph e' e He' He)) p
[PROOFSTEP]
rintro p rfl
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace F
proj : Z → B
inst✝⁴ : TopologicalSpace Z
inst✝³ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝² : TopologicalSpace B'
inst✝¹ : LinearOrder B
inst✝ : OrderTopology B
e e' : Trivialization F proj
p : Z
He : proj p ∈ e.baseSet
He' : proj p ∈ e'.baseSet
⊢ ↑e p = ↑(transFiberHomeomorph e' (Trivialization.coordChangeHomeomorph e' e He' He)) p
[PROOFSTEP]
ext1
[GOAL]
case h₁
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace F
proj : Z → B
inst✝⁴ : TopologicalSpace Z
inst✝³ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝² : TopologicalSpace B'
inst✝¹ : LinearOrder B
inst✝ : OrderTopology B
e e' : Trivialization F proj
p : Z
He : proj p ∈ e.baseSet
He' : proj p ∈ e'.baseSet
⊢ (↑e p).fst = (↑(transFiberHomeomorph e' (Trivialization.coordChangeHomeomorph e' e He' He)) p).fst
[PROOFSTEP]
simp [e.coe_fst', e'.coe_fst', *]
[GOAL]
case h₂
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace F
proj : Z → B
inst✝⁴ : TopologicalSpace Z
inst✝³ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝² : TopologicalSpace B'
inst✝¹ : LinearOrder B
inst✝ : OrderTopology B
e e' : Trivialization F proj
p : Z
He : proj p ∈ e.baseSet
He' : proj p ∈ e'.baseSet
⊢ (↑e p).snd = (↑(transFiberHomeomorph e' (Trivialization.coordChangeHomeomorph e' e He' He)) p).snd
[PROOFSTEP]
simp [coordChange_apply_snd, *]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
⊢ Disjoint e.source e'.source
[PROOFSTEP]
rw [e.source_eq, e'.source_eq]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
⊢ Disjoint (proj ⁻¹' e.baseSet) (proj ⁻¹' e'.baseSet)
[PROOFSTEP]
exact H.preimage _
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
⊢ Disjoint e.target e'.target
[PROOFSTEP]
rw [e.target_eq, e'.target_eq, disjoint_iff_inf_le]
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
⊢ e.baseSet ×ˢ univ ⊓ e'.baseSet ×ˢ univ ≤ ⊥
[PROOFSTEP]
intro x hx
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
x : B × F
hx : x ∈ e.baseSet ×ˢ univ ⊓ e'.baseSet ×ˢ univ
⊢ x ∈ ⊥
[PROOFSTEP]
exact H.le_bot ⟨hx.1.1, hx.2.1⟩
[GOAL]
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
⊢ ∀ (p : Z),
    p ∈
        (LocalHomeomorph.disjointUnion e.toLocalHomeomorph e'.toLocalHomeomorph (_ : Disjoint e.source e'.source)
              (_ : Disjoint e.target e'.target)).toLocalEquiv.source →
      (↑(LocalHomeomorph.disjointUnion e.toLocalHomeomorph e'.toLocalHomeomorph (_ : Disjoint e.source e'.source)
                (_ : Disjoint e.target e'.target))
            p).fst =
        proj p
[PROOFSTEP]
rintro p (hp | hp')
[GOAL]
case inl
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp : p ∈ e.source
⊢ (↑(LocalHomeomorph.disjointUnion e.toLocalHomeomorph e'.toLocalHomeomorph (_ : Disjoint e.source e'.source)
            (_ : Disjoint e.target e'.target))
        p).fst =
    proj p
[PROOFSTEP]
show (e.source.piecewise e e' p).1 = proj p
[GOAL]
case inl
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp : p ∈ e.source
⊢ (Set.piecewise e.source (↑e) (↑e') p).fst = proj p
[PROOFSTEP]
rw [piecewise_eq_of_mem, e.coe_fst]
[GOAL]
case inl
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp : p ∈ e.source
⊢ p ∈ e.source
[PROOFSTEP]
exact hp
[GOAL]
case inl.hi
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp : p ∈ e.source
⊢ p ∈ e.source
[PROOFSTEP]
exact hp
[GOAL]
case inr
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp' : p ∈ e'.source
⊢ (↑(LocalHomeomorph.disjointUnion e.toLocalHomeomorph e'.toLocalHomeomorph (_ : Disjoint e.source e'.source)
            (_ : Disjoint e.target e'.target))
        p).fst =
    proj p
[PROOFSTEP]
show (e.source.piecewise e e' p).1 = proj p
[GOAL]
case inr
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp' : p ∈ e'.source
⊢ (Set.piecewise e.source (↑e) (↑e') p).fst = proj p
[PROOFSTEP]
rw [piecewise_eq_of_not_mem, e'.coe_fst hp']
[GOAL]
case inr.hi
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp' : p ∈ e'.source
⊢ ¬p ∈ e.source
[PROOFSTEP]
simp only [source_eq] at hp' ⊢
[GOAL]
case inr.hi
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
proj : Z → B
inst✝² : TopologicalSpace Z
inst✝¹ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x : Z
e'✝ : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b : B
y : E b
B' : Type u_6
inst✝ : TopologicalSpace B'
e e' : Trivialization F proj
H : Disjoint e.baseSet e'.baseSet
p : Z
hp' : p ∈ proj ⁻¹' e'.baseSet
⊢ ¬p ∈ proj ⁻¹' e.baseSet
[PROOFSTEP]
exact fun h => H.le_bot ⟨h, hp'⟩