-- Mathlib/Topology/FiberBundle/Basic.lean
theorem inducing_totalSpaceMk_of_inducing_comp (b : B)
    (h : IsInducing (a.pretrivializationAt b ∘ TotalSpace.mk b)) :
    @IsInducing _ _ _ a.totalSpaceTopology (TotalSpace.mk b)

Proof state:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h :
  IsInducing
    ((a.pretrivializationAt b).source.restrict ↑(a.pretrivializationAt b) ∘
      codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ Continuous (codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)

Tactic:
exact (a.continuous_totalSpaceMk b).codRestrict (a.mem_pretrivializationAt_source b)

Result:
no goals

Proof state:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h : IsInducing (↑(a.pretrivializationAt b) ∘ TotalSpace.mk b)
⊢ IsInducing (TotalSpace.mk b)

Tactic:
letI := a.totalSpaceTopology

Result:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h : IsInducing (↑(a.pretrivializationAt b) ∘ TotalSpace.mk b)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsInducing (TotalSpace.mk b)

Proof state:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h : IsInducing (↑(a.pretrivializationAt b) ∘ TotalSpace.mk b)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsInducing (TotalSpace.mk b)

Tactic:
rw [← restrict_comp_codRestrict (a.mem_pretrivializationAt_source b)] at h

Result:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h :
  IsInducing
    ((a.pretrivializationAt b).source.restrict ↑(a.pretrivializationAt b) ∘
      codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsInducing (TotalSpace.mk b)

Proof state:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h :
  IsInducing
    ((a.pretrivializationAt b).source.restrict ↑(a.pretrivializationAt b) ∘
      codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsInducing (codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)

Tactic:
refine h.of_comp ?_ (continuousOn_iff_continuous_restrict.mp
  (a.trivializationOfMemPretrivializationAtlas (a.pretrivialization_mem_atlas b)).continuousOn)

Result:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h :
  IsInducing
    ((a.pretrivializationAt b).source.restrict ↑(a.pretrivializationAt b) ∘
      codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ Continuous (codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)

Proof state:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h :
  IsInducing
    ((a.pretrivializationAt b).source.restrict ↑(a.pretrivializationAt b) ∘
      codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsInducing (TotalSpace.mk b)

Tactic:
apply IsInducing.of_codRestrict (a.mem_pretrivializationAt_source b)

Result:
B : Type u_2
F : Type u_3
E : B → Type u_5
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : (x : B) → TopologicalSpace (E x)
a : FiberPrebundle F E
b : B
h :
  IsInducing
    ((a.pretrivializationAt b).source.restrict ↑(a.pretrivializationAt b) ∘
      codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)
this : TopologicalSpace (TotalSpace F E) := a.totalSpaceTopology
⊢ IsInducing (codRestrict (TotalSpace.mk b) (a.pretrivializationAt b).source ⋯)