Theorem: FiberPrebundle.isOpen_target_of_mem_pretrivializationAtlas_inter
File: Mathlib/Topology/FiberBundle/Basic.lean

Proof steps:
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
⊢ IsOpen (e'.target ∩ ↑e'.symm ⁻¹' e.source)
state_after: ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsOpen (e'.target ∩ ↑e'.symm ⁻¹' e.source)
tactic: letI := a.totalSpaceTopology
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsOpen (e'.target ∩ ↑e'.symm ⁻¹' e.source)
state_after: case intro.intro
ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
u : Set (B × F)
hu1 : IsOpen u
hu2 : ↑e'.symm ⁻¹' e.source ∩ e'.target = u ∩ e'.target
⊢ IsOpen (e'.target ∩ ↑e'.symm ⁻¹' e.source)
tactic: obtain ⟨u, hu1, hu2⟩ := continuousOn_iff'.mp (a.continuous_symm_of_mem_pretrivializationAtlas he')
    e.source (a.isOpen_source e)
state_before: case intro.intro
ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
u : Set (B × F)
hu1 : IsOpen u
hu2 : ↑e'.symm ⁻¹' e.source ∩ e'.target = u ∩ e'.target
⊢ IsOpen (e'.target ∩ ↑e'.symm ⁻¹' e.source)
state_after: case intro.intro
ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
u : Set (B × F)
hu1 : IsOpen u
hu2 : ↑e'.symm ⁻¹' e.source ∩ e'.target = u ∩ e'.target
⊢ IsOpen (u ∩ e'.target)
tactic: rw [inter_comm, hu2]
state_before: case intro.intro
ι : Type u_1
B : Type u_2
F : Type u_3
X : Type u_4
inst✝³ : TopologicalSpace X
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ e e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
u : Set (B × F)
hu1 : IsOpen u
hu2 : ↑e'.symm ⁻¹' e.source ∩ e'.target = u ∩ e'.target
⊢ IsOpen (u ∩ e'.target)
state_after: no goals
tactic: exact hu1.inter e'.open_target