Theorem: AlgebraicGeometry.Scheme.OpenCover.compactSpace
File: Mathlib/AlgebraicGeometry/Cover/Open.lean

Proof steps:
state_before: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
⊢ CompactSpace ↑↑X.toPresheafedSpace
state_after: case intro
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
⊢ CompactSpace ↑↑X.toPresheafedSpace
tactic: cases nonempty_fintype 𝒰.J
state_before: case intro
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
⊢ CompactSpace ↑↑X.toPresheafedSpace
state_after: case intro
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
⊢ IsCompact (⋃ i, Set.range ⇑(𝒰.map i).val.base)
tactic: rw [← isCompact_univ_iff, ← 𝒰.iUnion_range]
state_before: case intro
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
⊢ IsCompact (⋃ i, Set.range ⇑(𝒰.map i).val.base)
state_after: case intro.h
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
⊢ ∀ (i : 𝒰.J), IsCompact (Set.range ⇑(𝒰.map i).val.base)
tactic: apply isCompact_iUnion
state_before: case intro.h
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
⊢ ∀ (i : 𝒰.J), IsCompact (Set.range ⇑(𝒰.map i).val.base)
state_after: case intro.h
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
i : 𝒰.J
⊢ IsCompact (Set.range ⇑(𝒰.map i).val.base)
tactic: intro i
state_before: case intro.h
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
i : 𝒰.J
⊢ IsCompact (Set.range ⇑(𝒰.map i).val.base)
state_after: case intro.h
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
i : 𝒰.J
⊢ CompactSpace ↑(Set.range ⇑(𝒰.map i).val.base)
tactic: rw [isCompact_iff_compactSpace]
state_before: case intro.h
X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝¹ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
inst✝ : Finite 𝒰.J
H : ∀ (i : 𝒰.J), CompactSpace ↑↑(𝒰.obj i).toPresheafedSpace
val✝ : Fintype 𝒰.J
i : 𝒰.J
⊢ CompactSpace ↑(Set.range ⇑(𝒰.map i).val.base)
state_after: no goals
tactic: exact
    @Homeomorph.compactSpace _ _ _ _ (H i)
      (TopCat.homeoOfIso
        (asIso
          (IsOpenImmersion.isoOfRangeEq (𝒰.map i)
                  (X.ofRestrict (Opens.openEmbedding ⟨_, (𝒰.IsOpen i).base_open.isOpen_range⟩))
                  Subtype.range_coe.symm).hom.1.base))