Theorem: AlgebraicGeometry.LocallyRingedSpace.toΓSpec_preimage_zeroLocus_eq
File: Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

Proof steps:
state_before: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = X.toRingedSpace.zeroLocus s
state_after: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⋂ f ∈ s, (↑(X.toRingedSpace.basicOpen f))ᶜ
tactic: simp only [RingedSpace.zeroLocus]
state_before: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⋂ f ∈ s, (↑(X.toRingedSpace.basicOpen f))ᶜ
state_after: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⋂ f ∈ s, (↑(X.toRingedSpace.basicOpen f))ᶜ
tactic: have (i : LocallyRingedSpace.Γ.obj (op X)) (_ : i ∈ s) :
      ((X.toRingedSpace.basicOpen i).carrier)ᶜ =
        X.toΓSpec.val.base ⁻¹' (PrimeSpectrum.basicOpen i).carrierᶜ := by
    symm
    erw [Set.preimage_compl, X.toΓSpec_preimage_basicOpen_eq i]
state_before: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⋂ f ∈ s, (↑(X.toRingedSpace.basicOpen f))ᶜ
state_after: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⋂ i ∈ s, ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
tactic: erw [Set.iInter₂_congr this]
state_before: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⋂ i ∈ s, ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
state_after: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⇑X.toΓSpec.val.base ⁻¹' ⋂ i ∈ s, zeroLocus {i}
tactic: simp_rw [← Set.preimage_iInter₂, Opens.carrier_eq_coe, PrimeSpectrum.basicOpen_eq_zeroLocus_compl,
    compl_compl]
state_before: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⇑X.toΓSpec.val.base ⁻¹' ⋂ i ∈ s, zeroLocus {i}
state_after: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⇑X.toΓSpec.val.base ⁻¹' zeroLocus (⋃ i ∈ s, {i})
tactic: rw [← PrimeSpectrum.zeroLocus_iUnion₂]
state_before: X✝ : LocallyRingedSpace
r : ↑(Γ.obj (op X✝))
X : LocallyRingedSpace
s : Set ↑(X.presheaf.obj (op ⊤))
this : ∀ i ∈ s, (X.toRingedSpace.basicOpen i).carrierᶜ = ⇑X.toΓSpec.val.base ⁻¹' (basicOpen i).carrierᶜ
⊢ ⇑X.toΓSpec.val.base ⁻¹' zeroLocus s = ⇑X.toΓSpec.val.base ⁻¹' zeroLocus (⋃ i ∈ s, {i})
state_after: no goals
tactic: simp