Theorem: Inducing.isSigmaCompact_iff
File: Mathlib/Topology/Compactness/SigmaCompact.lean

tactic: constructor
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
⊢ IsSigmaCompact s ↔ IsSigmaCompact (f '' s)
state_after: case mp
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
⊢ IsSigmaCompact s → IsSigmaCompact (f '' s)

case mpr
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
⊢ IsSigmaCompact (f '' s) → IsSigmaCompact s

tactic: exact fun h ↦ h.image hf.continuous
state_before: case mp
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
⊢ IsSigmaCompact s → IsSigmaCompact (f '' s)
state_after: no goals

tactic: rintro ⟨L, hcomp, hcov⟩
state_before: case mpr
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
⊢ IsSigmaCompact (f '' s) → IsSigmaCompact s
state_after: case mpr.intro.intro
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ IsSigmaCompact s

tactic: refine ⟨fun n ↦ f ⁻¹' (L n) ∩ s, ?_, ?_⟩
state_before: case mpr.intro.intro
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ IsSigmaCompact s
state_after: case mpr.intro.intro.refine_1
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ ∀ (n : ℕ), IsCompact ((fun n => f ⁻¹' L n ∩ s) n)

case mpr.intro.intro.refine_2
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ ⋃ n, (fun n => f ⁻¹' L n ∩ s) n = s

tactic: intro n
state_before: case mpr.intro.intro.refine_1
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ ∀ (n : ℕ), IsCompact ((fun n => f ⁻¹' L n ∩ s) n)
state_after: case mpr.intro.intro.refine_1
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
⊢ IsCompact ((fun n => f ⁻¹' L n ∩ s) n)

tactic: have : f '' (f ⁻¹' (L n) ∩ s) = L n := by
  rw [image_preimage_inter, inter_eq_left.mpr]
  exact (subset_iUnion _ n).trans hcov.le
state_before: case mpr.intro.intro.refine_1
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
⊢ IsCompact ((fun n => f ⁻¹' L n ∩ s) n)
state_after: case mpr.intro.intro.refine_1
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
this : f '' (f ⁻¹' L n ∩ s) = L n
⊢ IsCompact ((fun n => f ⁻¹' L n ∩ s) n)

tactic: apply hf.isCompact_iff.mpr (this.symm ▸ (hcomp n))
state_before: case mpr.intro.intro.refine_1
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
this : f '' (f ⁻¹' L n ∩ s) = L n
⊢ IsCompact ((fun n => f ⁻¹' L n ∩ s) n)
state_after: no goals

tactic: rw [image_preimage_inter, inter_eq_left.mpr]
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
⊢ f '' (f ⁻¹' L n ∩ s) = L n
state_after: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
⊢ L n ⊆ f '' s

tactic: exact (subset_iUnion _ n).trans hcov.le
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
n : ℕ
⊢ L n ⊆ f '' s
state_after: no goals

tactic: calc ⋃ n, f ⁻¹' L n ∩ s
  _ = f ⁻¹' (⋃ n, L n) ∩ s  := by rw [preimage_iUnion, iUnion_inter]
  _ = f ⁻¹' (f '' s) ∩ s := by rw [hcov]
  _ = s := inter_eq_right.mpr (subset_preimage_image _ _)
state_before: case mpr.intro.intro.refine_2
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ ⋃ n, (fun n => f ⁻¹' L n ∩ s) n = s
state_after: no goals

tactic: rw [preimage_iUnion, iUnion_inter]
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ ⋃ n, f ⁻¹' L n ∩ s = (f ⁻¹' ⋃ n, L n) ∩ s
state_after: no goals

tactic: rw [hcov]
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
f : X → Y
s : Set X
hf : Inducing f
L : ℕ → Set Y
hcomp : ∀ (n : ℕ), IsCompact (L n)
hcov : ⋃ n, L n = f '' s
⊢ (f ⁻¹' ⋃ n, L n) ∩ s = f ⁻¹' (f '' s) ∩ s
state_after: no goals