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

tactic: letI := a.totalSpaceTopology
state_before: ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
⊢ ContinuousOn f (TotalSpace.proj ⁻¹' s)

tactic: intro z hz
state_before: ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
⊢ ContinuousOn f (TotalSpace.proj ⁻¹' s)

tactic: let e : Trivialization F (π E) :=
  a.trivializationOfMemPretrivializationAtlas (a.pretrivialization_mem_atlas z.proj)
state_before: ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
⊢ ContinuousWithinAt f (TotalSpace.proj ⁻¹' s) z

tactic: refine' (e.continuousAt_of_comp_right _
  ((hf z.proj hz).continuousAt (IsOpen.mem_nhds _ _))).continuousWithinAt
state_before: ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ ContinuousWithinAt f (TotalSpace.proj ⁻¹' s) z

tactic: refine' ⟨_, mem_univ _⟩
state_before: case refine'_3
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ ↑e z ∈ (s ∩ (pretrivializationAt a (TotalSpace.proj z)).baseSet) ×ˢ univ

tactic: rw [e.coe_fst]
state_before: case refine'_3
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ (↑e z).fst ∈ s ∩ (pretrivializationAt a (TotalSpace.proj z)).baseSet

tactic: exact a.mem_base_pretrivializationAt z.proj
state_before: case refine'_1
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ TotalSpace.proj z ∈ e.baseSet

tactic: exact (hs.inter (a.pretrivializationAt z.proj).open_baseSet).prod isOpen_univ
state_before: case refine'_2
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ IsOpen ((s ∩ (pretrivializationAt a (TotalSpace.proj z)).baseSet) ×ˢ univ)

tactic: exact ⟨hz, a.mem_base_pretrivializationAt z.proj⟩
state_before: case refine'_3
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ TotalSpace.proj z ∈ s ∩ (pretrivializationAt a (TotalSpace.proj z)).baseSet

tactic: rw [e.mem_source]
state_before: case refine'_3
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ z ∈ e.source

tactic: exact a.mem_base_pretrivializationAt z.proj
state_before: case refine'_3
ι : Type ?u.65679
B : Type u_2
F : Type u_4
X✝ : Type ?u.65688
inst✝⁴ : TopologicalSpace X✝
E : B → Type u_3
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
inst✝¹ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
e✝ : Pretrivialization F TotalSpace.proj
X : Type u_1
inst✝ : TopologicalSpace X
f : TotalSpace E → X
s : Set B
hs : IsOpen s
hf :
  ∀ (b : B),
    b ∈ s →
      ContinuousOn (f ∘ ↑(LocalEquiv.symm (pretrivializationAt a b).toLocalEquiv))
        ((s ∩ (pretrivializationAt a b).baseSet) ×ˢ univ)
this : TopologicalSpace (TotalSpace E) := totalSpaceTopology a
z : TotalSpace E
hz : z ∈ TotalSpace.proj ⁻¹' s
e : Trivialization F TotalSpace.proj :=
  trivializationOfMemPretrivializationAtlas a (_ : pretrivializationAt a (TotalSpace.proj z) ∈ a.pretrivializationAtlas)
⊢ TotalSpace.proj z ∈ e.baseSet