Theorem: PrimeSpectrum.localization_away_comap_range
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [localization_comap_range S (Submonoid.powers r)]
state_before: R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
⊢ Set.range ⇑(comap (algebraMap R S)) = ↑(basicOpen r)
state_after: R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
⊢ {p | Disjoint ↑(Submonoid.powers r) ↑p.asIdeal} = ↑(basicOpen r)

tactic: ext x
state_before: R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
⊢ {p | Disjoint ↑(Submonoid.powers r) ↑p.asIdeal} = ↑(basicOpen r)
state_after: case h
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ x ∈ {p | Disjoint ↑(Submonoid.powers r) ↑p.asIdeal} ↔ x ∈ ↑(basicOpen r)

tactic: simp only [mem_zeroLocus, basicOpen_eq_zeroLocus_compl, SetLike.mem_coe, Set.mem_setOf_eq,
  Set.singleton_subset_iff, Set.mem_compl_iff, disjoint_iff_inf_le]
state_before: case h
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ x ∈ {p | Disjoint ↑(Submonoid.powers r) ↑p.asIdeal} ↔ x ∈ ↑(basicOpen r)
state_after: case h
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥ ↔ r ∉ x.asIdeal

tactic: constructor
state_before: case h
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥ ↔ r ∉ x.asIdeal
state_after: case h.mp
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥ → r ∉ x.asIdeal

case h.mpr
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ r ∉ x.asIdeal → ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥

tactic: intro h₁ h₂
state_before: case h.mp
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥ → r ∉ x.asIdeal
state_after: case h.mp
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
h₁ : ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥
h₂ : r ∈ x.asIdeal
⊢ False

tactic: exact h₁ ⟨Submonoid.mem_powers r, h₂⟩
state_before: case h.mp
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
h₁ : ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥
h₂ : r ∈ x.asIdeal
⊢ False
state_after: no goals

tactic: rintro h₁ _ ⟨⟨n, rfl⟩, h₃⟩
state_before: case h.mpr
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
⊢ r ∉ x.asIdeal → ↑(Submonoid.powers r) ⊓ ↑x.asIdeal ≤ ⊥
state_after: case h.mpr.intro.intro
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
h₁ : r ∉ x.asIdeal
n : ℕ
h₃ : (fun x => r ^ x) n ∈ ↑x.asIdeal
⊢ (fun x => r ^ x) n ∈ ⊥

tactic: exact h₁ (x.2.mem_of_pow_mem _ h₃)
state_before: case h.mpr.intro.intro
R : Type u
S✝ : Type v
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S✝
S : Type v
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
r : R
inst✝ : IsLocalization.Away r S
x : PrimeSpectrum R
h₁ : r ∉ x.asIdeal
n : ℕ
h₃ : (fun x => r ^ x) n ∈ ↑x.asIdeal
⊢ (fun x => r ^ x) n ∈ ⊥
state_after: no goals