case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
⊢ IsPreconnected (pi univ s)
rintro u v uo vo hsuv ⟨f, hfs, hfu⟩ ⟨g, hgs, hgv⟩
case intro.intro.intro.intro.intro
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I : Finset ι
hI : Finset.piecewise I f g ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
rcases exists_finset_piecewise_mem_of_mem_nhds (uo.mem_nhds hfu) g with ⟨I, hI⟩
case intro.intro.intro.intro.intro.empty
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I : Finset ι
hI✝ : Finset.piecewise I f g ∈ u
hI : Finset.piecewise ∅ f g ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))

case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : Finset.piecewise (insert i I) f g ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I : Finset ι
hI : Finset.piecewise I f g ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
induction' I using Finset.induction_on with i I _ ihI
case intro.intro.intro.intro.intro.empty
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I : Finset ι
hI✝ : Finset.piecewise I f g ∈ u
hI : Finset.piecewise ∅ f g ∈ u
⊢ g ∈ u
case intro.intro.intro.intro.intro.empty
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I : Finset ι
hI✝ : Finset.piecewise I f g ∈ u
hI : Finset.piecewise ∅ f g ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
refine' ⟨g, hgs, ⟨_, hgv⟩⟩
no goals
case intro.intro.intro.intro.intro.empty
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I : Finset ι
hI✝ : Finset.piecewise I f g ∈ u
hI : Finset.piecewise ∅ f g ∈ u
⊢ g ∈ u
simpa using hI
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : Finset.piecewise (insert i I) f g ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
rw [Finset.piecewise_insert] at hI
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
have := I.piecewise_mem_set_pi hfs hgs
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
refine' (hsuv this).elim ihI fun h => _
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
set S := update (I.piecewise f g) i '' s i
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
have hsub : S ⊆ pi univ s := by
  refine' image_subset_iff.2 fun z hz => _
  rwa [update_preimage_univ_pi]
  exact fun j _ => this j trivial
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
have hconn : IsPreconnected S :=
  (hs i).image _ (continuous_const.update i continuous_id).continuousOn
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
hSu : Set.Nonempty (S ∩ u)
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
have hSu : (S ∩ u).Nonempty := ⟨_, mem_image_of_mem _ (hfs _ trivial), hI⟩
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
hSu : Set.Nonempty (S ∩ u)
hSv : Set.Nonempty (S ∩ v)
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
hSu : Set.Nonempty (S ∩ u)
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
have hSv : (S ∩ v).Nonempty := ⟨_, ⟨_, this _ trivial, update_eq_self _ _⟩, h⟩
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
hSu : Set.Nonempty (S ∩ u)
hSv : Set.Nonempty (S ∩ v)
⊢ S ∩ (u ∩ v) ⊆ pi univ s ∩ (u ∩ v)
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
hSu : Set.Nonempty (S ∩ u)
hSv : Set.Nonempty (S ∩ v)
⊢ Set.Nonempty (pi univ s ∩ (u ∩ v))
refine' (hconn u v uo vo (hsub.trans hsuv) hSu hSv).mono _
no goals
case intro.intro.intro.intro.intro.insert
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
hsub : S ⊆ pi univ s
hconn : IsPreconnected S
hSu : Set.Nonempty (S ∩ u)
hSv : Set.Nonempty (S ∩ v)
⊢ S ∩ (u ∩ v) ⊆ pi univ s ∩ (u ∩ v)
exact inter_subset_inter_left _ hsub
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
z : π i
hz : z ∈ s i
⊢ z ∈ update (Finset.piecewise I f g) i ⁻¹' pi univ s
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
⊢ S ⊆ pi univ s
refine' image_subset_iff.2 fun z hz => _
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
z : π i
hz : z ∈ s i
⊢ ∀ (j : ι), j ≠ i → Finset.piecewise I f g j ∈ s j
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
z : π i
hz : z ∈ s i
⊢ z ∈ update (Finset.piecewise I f g) i ⁻¹' pi univ s
rwa [update_preimage_univ_pi]
no goals
α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u✝ v✝ : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hs : ∀ (i : ι), IsPreconnected (s i)
u v : Set ((i : ι) → π i)
uo : IsOpen u
vo : IsOpen v
hsuv : pi univ s ⊆ u ∪ v
f : (i : ι) → π i
hfs : f ∈ pi univ s
hfu : f ∈ u
g : (i : ι) → π i
hgs : g ∈ pi univ s
hgv : g ∈ v
I✝ : Finset ι
hI✝ : Finset.piecewise I✝ f g ∈ u
i : ι
I : Finset ι
a✝ : ¬i ∈ I
ihI : Finset.piecewise I f g ∈ u → Set.Nonempty (pi univ s ∩ (u ∩ v))
hI : update (Finset.piecewise I f g) i (f i) ∈ u
this : Finset.piecewise I f g ∈ pi univ s
h : Finset.piecewise I f g ∈ v
S : Set ((a : ι) → π a) := update (Finset.piecewise I f g) i '' s i
z : π i
hz : z ∈ s i
⊢ ∀ (j : ι), j ≠ i → Finset.piecewise I f g j ∈ s j
exact fun j _ => this j trivial