Theorem: AlgebraicGeometry.ProjectiveSpectrum.Proj.isIso_toSpec
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean

tactic: haveI : IsIso (toSpec 𝒜 f).1.base := toSpec_base_isIso 𝒜 f_deg hm
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
⊢ IsIso (toSpec 𝒜 f)
state_after: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this : IsIso (toSpec 𝒜 f).val.base
⊢ IsIso (toSpec 𝒜 f)

tactic: haveI (x) : IsIso (LocallyRingedSpace.stalkMap (toSpec 𝒜 f) x) := by
  rw [stalkMap_toSpec 𝒜 f x f_deg hm]; infer_instance
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this : IsIso (toSpec 𝒜 f).val.base
⊢ IsIso (toSpec 𝒜 f)
state_after: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this✝ : IsIso (toSpec 𝒜 f).val.base
this : ∀ (x : ↑(Proj.restrict ⋯).toTopCat), IsIso (LocallyRingedSpace.stalkMap (toSpec 𝒜 f) x)
⊢ IsIso (toSpec 𝒜 f)

tactic: haveI : LocallyRingedSpace.IsOpenImmersion (toSpec 𝒜 f) :=
  LocallyRingedSpace.IsOpenImmersion.of_stalk_iso (toSpec 𝒜 f)
    (TopCat.homeoOfIso (asIso <| (toSpec 𝒜 f).1.base)).openEmbedding
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this✝ : IsIso (toSpec 𝒜 f).val.base
this : ∀ (x : ↑(Proj.restrict ⋯).toTopCat), IsIso (LocallyRingedSpace.stalkMap (toSpec 𝒜 f) x)
⊢ IsIso (toSpec 𝒜 f)
state_after: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this✝¹ : IsIso (toSpec 𝒜 f).val.base
this✝ : ∀ (x : ↑(Proj.restrict ⋯).toTopCat), IsIso (LocallyRingedSpace.stalkMap (toSpec 𝒜 f) x)
this : LocallyRingedSpace.IsOpenImmersion (toSpec 𝒜 f)
⊢ IsIso (toSpec 𝒜 f)

tactic: exact LocallyRingedSpace.IsOpenImmersion.to_iso _
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this✝¹ : IsIso (toSpec 𝒜 f).val.base
this✝ : ∀ (x : ↑(Proj.restrict ⋯).toTopCat), IsIso (LocallyRingedSpace.stalkMap (toSpec 𝒜 f) x)
this : LocallyRingedSpace.IsOpenImmersion (toSpec 𝒜 f)
⊢ IsIso (toSpec 𝒜 f)
state_after: no goals

tactic: rw [stalkMap_toSpec 𝒜 f x f_deg hm]
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this : IsIso (toSpec 𝒜 f).val.base
x : ↑(Proj.restrict ⋯).toTopCat
⊢ IsIso (LocallyRingedSpace.stalkMap (toSpec 𝒜 f) x)
state_after: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this : IsIso (toSpec 𝒜 f).val.base
x : ↑(Proj.restrict ⋯).toTopCat
⊢ IsIso
    ((specStalkEquiv 𝒜 f x f_deg hm).hom ≫ (Proj.stalkIso' 𝒜 ↑x).toCommRingCatIso.inv ≫ (Proj.restrictStalkIso ⋯ x).inv)

tactic: infer_instance
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
f : A
m : ℕ
f_deg : f ∈ 𝒜 m
hm : 0 < m
this : IsIso (toSpec 𝒜 f).val.base
x : ↑(Proj.restrict ⋯).toTopCat
⊢ IsIso
    ((specStalkEquiv 𝒜 f x f_deg hm).hom ≫ (Proj.stalkIso' 𝒜 ↑x).toCommRingCatIso.inv ≫ (Proj.restrictStalkIso ⋯ x).inv)
state_after: no goals