Theorem: IsOpen.continuous_piecewise_of_specializes
File: Mathlib/Topology/Inseparable.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
⊢ Continuous (s.piecewise f g)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
⊢ Continuous (s.piecewise f g)
tactic: have : ∀ U, IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U := fun U hU x hx ↦ (hspec x).mem_open hU hx
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
⊢ Continuous (s.piecewise f g)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
⊢ ∀ (s_1 : Set Y), IsOpen s_1 → IsOpen (s.piecewise f g ⁻¹' s_1)
tactic: rw [continuous_def]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
⊢ ∀ (s_1 : Set Y), IsOpen s_1 → IsOpen (s.piecewise f g ⁻¹' s_1)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
U : Set Y
hU : IsOpen U
⊢ IsOpen (s.piecewise f g ⁻¹' U)
tactic: intro U hU
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
U : Set Y
hU : IsOpen U
⊢ IsOpen (s.piecewise f g ⁻¹' U)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
U : Set Y
hU : IsOpen U
⊢ IsOpen (f ⁻¹' U ∩ s ∪ g ⁻¹' U)
tactic: rw [piecewise_preimage, ite_eq_of_subset_right _ (this U hU)]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
inst✝¹ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
inst✝ : DecidablePred fun x => x ∈ s
hs : IsOpen s
hf : Continuous f
hg : Continuous g
hspec : ∀ (x : X), f x ⤳ g x
this : ∀ (U : Set Y), IsOpen U → g ⁻¹' U ⊆ f ⁻¹' U
U : Set Y
hU : IsOpen U
⊢ IsOpen (f ⁻¹' U ∩ s ∪ g ⁻¹' U)
state_after: no goals
tactic: exact hU.preimage hf |>.inter hs |>.union (hU.preimage hg)