Theorem: AlgebraicGeometry.IsLocalAtTarget.of_iSup_eq_top
File: Mathlib/AlgebraicGeometry/Morphisms/Basic.lean

Proof steps:
state_before: P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
⊢ P f
state_after: P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ((Y.openCoverOfISupEqTop Subtype.val ⋯).pullbackCover f).J
⊢ P ((Y.openCoverOfISupEqTop Subtype.val ⋯).pullbackHom f i)
tactic: refine (IsLocalAtTarget.iff_of_openCover' f
    (Y.openCoverOfISupEqTop (s := Set.range U) Subtype.val (by ext; simp [← hU]))).mpr fun i ↦ ?_
state_before: P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ((Y.openCoverOfISupEqTop Subtype.val ⋯).pullbackCover f).J
⊢ P ((Y.openCoverOfISupEqTop Subtype.val ⋯).pullbackHom f i)
state_after: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P ((Y.openCoverOfISupEqTop Subtype.val ⋯).pullbackHom f ⟨U i, ⋯⟩)
tactic: obtain ⟨_, i, rfl⟩ := i
state_before: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P ((Y.openCoverOfISupEqTop Subtype.val ⋯).pullbackHom f ⟨U i, ⋯⟩)
state_after: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P (f ∣_ Scheme.Hom.opensRange ((Y.openCoverOfISupEqTop Subtype.val ⋯).map ⟨U i, ⋯⟩))
tactic: refine (P.arrow_mk_iso_iff (morphismRestrictOpensRange f _)).mp ?_
state_before: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P (f ∣_ Scheme.Hom.opensRange ((Y.openCoverOfISupEqTop Subtype.val ⋯).map ⟨U i, ⋯⟩))
state_after: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P (f ∣_ Scheme.Hom.opensRange (U i).ι)
tactic: show P (f ∣_ (U i).ι.opensRange)
state_before: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P (f ∣_ Scheme.Hom.opensRange (U i).ι)
state_after: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P (f ∣_ U i)
tactic: rw [Scheme.Opens.opensRange_ι]
state_before: case mk.intro
P : MorphismProperty Scheme
hP : IsLocalAtTarget P
X Y U✝ V : Scheme
f : X ⟶ Y
g : U✝ ⟶ Y
inst✝ : IsOpenImmersion g
𝒰 : Y.OpenCover
ι : Sort u_1
U : ι → Y.Opens
hU : iSup U = ⊤
H : ∀ (i : ι), P (f ∣_ U i)
i : ι
⊢ P (f ∣_ U i)
state_after: no goals
tactic: exact H i