algebraic_geometry.prime_spectrum.maximal
⟷
Mathlib.AlgebraicGeometry.PrimeSpectrum.Maximal
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 David Kurniadi Angdinata. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Kurniadi Angdinata
-/
-import Mathbin.AlgebraicGeometry.PrimeSpectrum.Basic
-import Mathbin.RingTheory.Localization.AsSubring
+import AlgebraicGeometry.PrimeSpectrum.Basic
+import RingTheory.Localization.AsSubring
#align_import algebraic_geometry.prime_spectrum.maximal from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 David Kurniadi Angdinata. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Kurniadi Angdinata
-
-! This file was ported from Lean 3 source module algebraic_geometry.prime_spectrum.maximal
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.AlgebraicGeometry.PrimeSpectrum.Basic
import Mathbin.RingTheory.Localization.AsSubring
+#align_import algebraic_geometry.prime_spectrum.maximal from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
/-!
# Maximal spectrum of a commutative ring
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -106,6 +106,7 @@ theorem toPrimeSpectrum_continuous : Continuous <| @toPrimeSpectrum R _ :=
variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
+#print MaximalSpectrum.iInf_localization_eq_bot /-
/-- An integral domain is equal to the intersection of its localizations at all its maximal ideals
viewed as subalgebras of its field of fractions. -/
theorem iInf_localization_eq_bot :
@@ -140,6 +141,7 @@ theorem iInf_localization_eq_bot :
· rintro ⟨y, rfl⟩ ⟨v, hv⟩
exact ⟨y, 1, v.ne_top_iff_one.mp hv.ne_top, by rw [map_one, inv_one, mul_one]⟩
#align maximal_spectrum.infi_localization_eq_bot MaximalSpectrum.iInf_localization_eq_bot
+-/
end MaximalSpectrum
@@ -147,6 +149,7 @@ namespace PrimeSpectrum
variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
+#print PrimeSpectrum.iInf_localization_eq_bot /-
/-- An integral domain is equal to the intersection of its localizations at all its prime ideals
viewed as subalgebras of its field of fractions. -/
theorem iInf_localization_eq_bot :
@@ -163,6 +166,7 @@ theorem iInf_localization_eq_bot :
rintro ⟨y, rfl⟩ ⟨v, hv⟩
exact ⟨y, 1, v.ne_top_iff_one.mp hv.ne_top, by rw [map_one, inv_one, mul_one]⟩
#align prime_spectrum.infi_localization_eq_bot PrimeSpectrum.iInf_localization_eq_bot
+-/
end PrimeSpectrum
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -76,7 +76,7 @@ open PrimeSpectrum Set
#print MaximalSpectrum.toPrimeSpectrum_range /-
theorem toPrimeSpectrum_range :
- Set.range (@toPrimeSpectrum R _) = { x | IsClosed ({x} : Set <| PrimeSpectrum R) } :=
+ Set.range (@toPrimeSpectrum R _) = {x | IsClosed ({x} : Set <| PrimeSpectrum R)} :=
by
simp only [is_closed_singleton_iff_is_maximal]
ext ⟨x, _⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -34,7 +34,7 @@ natural inclusion into the prime spectrum to avoid API duplication for zero loci
noncomputable section
-open Classical
+open scoped Classical
universe u v
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -106,12 +106,6 @@ theorem toPrimeSpectrum_continuous : Continuous <| @toPrimeSpectrum R _ :=
variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
-/- warning: maximal_spectrum.infi_localization_eq_bot -> MaximalSpectrum.iInf_localization_eq_bot is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toHasInf.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4))) (MaximalSpectrum.{u1} R _inst_1) (fun (v : MaximalSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.isMaximal.{u1} R _inst_1 v))) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.isMaximal.{u1} R _inst_1 v)) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toHasBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4)))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toInfSet.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4))) (MaximalSpectrum.{u1} R _inst_1) (fun (v : MaximalSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.IsMaximal.{u1} R _inst_1 v))) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.IsMaximal.{u1} R _inst_1 v)) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4)))
-Case conversion may be inaccurate. Consider using '#align maximal_spectrum.infi_localization_eq_bot MaximalSpectrum.iInf_localization_eq_botₓ'. -/
/-- An integral domain is equal to the intersection of its localizations at all its maximal ideals
viewed as subalgebras of its field of fractions. -/
theorem iInf_localization_eq_bot :
@@ -153,12 +147,6 @@ namespace PrimeSpectrum
variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
-/- warning: prime_spectrum.infi_localization_eq_bot -> PrimeSpectrum.iInf_localization_eq_bot is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toHasInf.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4))) (PrimeSpectrum.{u1} R _inst_1) (fun (v : PrimeSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.isPrime.{u1} R _inst_1 v)) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.isPrime.{u1} R _inst_1 v) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toHasBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4)))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toInfSet.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4))) (PrimeSpectrum.{u1} R _inst_1) (fun (v : PrimeSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.IsPrime.{u1} R _inst_1 v)) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.IsPrime.{u1} R _inst_1 v) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4)))
-Case conversion may be inaccurate. Consider using '#align prime_spectrum.infi_localization_eq_bot PrimeSpectrum.iInf_localization_eq_botₓ'. -/
/-- An integral domain is equal to the intersection of its localizations at all its prime ideals
viewed as subalgebras of its field of fractions. -/
theorem iInf_localization_eq_bot :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Kurniadi Angdinata
! This file was ported from Lean 3 source module algebraic_geometry.prime_spectrum.maximal
-! leanprover-community/mathlib commit 052f6013363326d50cb99c6939814a4b8eb7b301
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.RingTheory.Localization.AsSubring
/-!
# Maximal spectrum of a commutative ring
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The maximal spectrum of a commutative ring is the type of all maximal ideals.
It is naturally a subset of the prime spectrum endowed with the subspace topology.
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -37,12 +37,14 @@ universe u v
variable (R : Type u) [CommRing R]
+#print MaximalSpectrum /-
/-- The maximal spectrum of a commutative ring `R` is the type of all maximal ideals of `R`. -/
@[ext]
structure MaximalSpectrum where
asIdeal : Ideal R
IsMaximal : as_ideal.IsMaximal
#align maximal_spectrum MaximalSpectrum
+-/
attribute [instance] MaximalSpectrum.isMaximal
@@ -54,17 +56,22 @@ instance [Nontrivial R] : Nonempty <| MaximalSpectrum R :=
let ⟨I, hI⟩ := Ideal.exists_maximal R
⟨⟨I, hI⟩⟩
+#print MaximalSpectrum.toPrimeSpectrum /-
/-- The natural inclusion from the maximal spectrum to the prime spectrum. -/
def toPrimeSpectrum (x : MaximalSpectrum R) : PrimeSpectrum R :=
⟨x.asIdeal, x.IsMaximal.IsPrime⟩
#align maximal_spectrum.to_prime_spectrum MaximalSpectrum.toPrimeSpectrum
+-/
+#print MaximalSpectrum.toPrimeSpectrum_injective /-
theorem toPrimeSpectrum_injective : (@toPrimeSpectrum R _).Injective := fun ⟨_, _⟩ ⟨_, _⟩ h => by
simpa only [mk.inj_eq] using (PrimeSpectrum.ext_iff _ _).mp h
#align maximal_spectrum.to_prime_spectrum_injective MaximalSpectrum.toPrimeSpectrum_injective
+-/
open PrimeSpectrum Set
+#print MaximalSpectrum.toPrimeSpectrum_range /-
theorem toPrimeSpectrum_range :
Set.range (@toPrimeSpectrum R _) = { x | IsClosed ({x} : Set <| PrimeSpectrum R) } :=
by
@@ -72,12 +79,15 @@ theorem toPrimeSpectrum_range :
ext ⟨x, _⟩
exact ⟨fun ⟨y, hy⟩ => hy ▸ y.IsMaximal, fun hx => ⟨⟨x, hx⟩, rfl⟩⟩
#align maximal_spectrum.to_prime_spectrum_range MaximalSpectrum.toPrimeSpectrum_range
+-/
+#print MaximalSpectrum.zariskiTopology /-
/-- The Zariski topology on the maximal spectrum of a commutative ring is defined as the subspace
topology induced by the natural inclusion into the prime spectrum. -/
instance zariskiTopology : TopologicalSpace <| MaximalSpectrum R :=
PrimeSpectrum.zariskiTopology.induced toPrimeSpectrum
#align maximal_spectrum.zariski_topology MaximalSpectrum.zariskiTopology
+-/
instance : T1Space <| MaximalSpectrum R :=
⟨fun x =>
@@ -85,12 +95,20 @@ instance : T1Space <| MaximalSpectrum R :=
⟨{toPrimeSpectrum x}, (isClosed_singleton_iff_isMaximal _).mpr x.IsMaximal, by
simpa only [← image_singleton] using preimage_image_eq {x} to_prime_spectrum_injective⟩⟩
+#print MaximalSpectrum.toPrimeSpectrum_continuous /-
theorem toPrimeSpectrum_continuous : Continuous <| @toPrimeSpectrum R _ :=
continuous_induced_dom
#align maximal_spectrum.to_prime_spectrum_continuous MaximalSpectrum.toPrimeSpectrum_continuous
+-/
variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
+/- warning: maximal_spectrum.infi_localization_eq_bot -> MaximalSpectrum.iInf_localization_eq_bot is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toHasInf.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4))) (MaximalSpectrum.{u1} R _inst_1) (fun (v : MaximalSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.isMaximal.{u1} R _inst_1 v))) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.isMaximal.{u1} R _inst_1 v)) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toHasBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4)))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toInfSet.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4))) (MaximalSpectrum.{u1} R _inst_1) (fun (v : MaximalSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.IsMaximal.{u1} R _inst_1 v))) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (Ideal.IsMaximal.isPrime'.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (MaximalSpectrum.asIdeal.{u1} R _inst_1 v) (MaximalSpectrum.IsMaximal.{u1} R _inst_1 v)) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4)))
+Case conversion may be inaccurate. Consider using '#align maximal_spectrum.infi_localization_eq_bot MaximalSpectrum.iInf_localization_eq_botₓ'. -/
/-- An integral domain is equal to the intersection of its localizations at all its maximal ideals
viewed as subalgebras of its field of fractions. -/
theorem iInf_localization_eq_bot :
@@ -132,6 +150,12 @@ namespace PrimeSpectrum
variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
+/- warning: prime_spectrum.infi_localization_eq_bot -> PrimeSpectrum.iInf_localization_eq_bot is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toHasInf.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4))) (PrimeSpectrum.{u1} R _inst_1) (fun (v : PrimeSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.isPrime.{u1} R _inst_1 v)) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.isPrime.{u1} R _inst_1 v) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (CompleteLattice.toHasBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4) (Algebra.Subalgebra.completeLattice.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_3))) _inst_4)))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] (K : Type.{u2}) [_inst_3 : Field.{u2} K] [_inst_4 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3)))] [_inst_5 : IsFractionRing.{u1, u2} R _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_3)) _inst_4], Eq.{succ u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (iInf.{u2, succ u1} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (ConditionallyCompleteLattice.toInfSet.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4))) (PrimeSpectrum.{u1} R _inst_1) (fun (v : PrimeSpectrum.{u1} R _inst_1) => Localization.subalgebra.ofField.{u1, u2} R K _inst_1 (Ideal.primeCompl.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.IsPrime.{u1} R _inst_1 v)) (Ideal.primeCompl_le_nonZeroDivisors.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) (PrimeSpectrum.asIdeal.{u1} R _inst_1 v) (PrimeSpectrum.IsPrime.{u1} R _inst_1 v) (IsDomain.to_noZeroDivisors.{u1} R (CommRing.toRing.{u1} R _inst_1) _inst_2)) _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (CompleteLattice.toBot.{u2} (Subalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4) (Algebra.instCompleteLatticeSubalgebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_3))) _inst_4)))
+Case conversion may be inaccurate. Consider using '#align prime_spectrum.infi_localization_eq_bot PrimeSpectrum.iInf_localization_eq_botₓ'. -/
/-- An integral domain is equal to the intersection of its localizations at all its prime ideals
viewed as subalgebras of its field of fractions. -/
theorem iInf_localization_eq_bot :
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -93,13 +93,13 @@ variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R
/-- An integral domain is equal to the intersection of its localizations at all its maximal ideals
viewed as subalgebras of its field of fractions. -/
-theorem infᵢ_localization_eq_bot :
+theorem iInf_localization_eq_bot :
(⨅ v : MaximalSpectrum R,
Localization.subalgebra.ofField K _ v.asIdeal.primeCompl_le_nonZeroDivisors) =
⊥ :=
by
ext x
- rw [Algebra.mem_bot, Algebra.mem_infᵢ]
+ rw [Algebra.mem_bot, Algebra.mem_iInf]
constructor
· apply imp_of_not_imp_not
intro hrange hlocal
@@ -124,7 +124,7 @@ theorem infᵢ_localization_eq_bot :
(h ▸ hd) max.zero_mem]⟩
· rintro ⟨y, rfl⟩ ⟨v, hv⟩
exact ⟨y, 1, v.ne_top_iff_one.mp hv.ne_top, by rw [map_one, inv_one, mul_one]⟩
-#align maximal_spectrum.infi_localization_eq_bot MaximalSpectrum.infᵢ_localization_eq_bot
+#align maximal_spectrum.infi_localization_eq_bot MaximalSpectrum.iInf_localization_eq_bot
end MaximalSpectrum
@@ -134,20 +134,20 @@ variable (R) [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R
/-- An integral domain is equal to the intersection of its localizations at all its prime ideals
viewed as subalgebras of its field of fractions. -/
-theorem infᵢ_localization_eq_bot :
+theorem iInf_localization_eq_bot :
(⨅ v : PrimeSpectrum R,
Localization.subalgebra.ofField K _ <| v.asIdeal.primeCompl_le_nonZeroDivisors) =
⊥ :=
by
ext x
- rw [Algebra.mem_infᵢ]
+ rw [Algebra.mem_iInf]
constructor
- · rw [← MaximalSpectrum.infᵢ_localization_eq_bot, Algebra.mem_infᵢ]
+ · rw [← MaximalSpectrum.iInf_localization_eq_bot, Algebra.mem_iInf]
exact fun hx ⟨v, hv⟩ => hx ⟨v, hv.IsPrime⟩
· rw [Algebra.mem_bot]
rintro ⟨y, rfl⟩ ⟨v, hv⟩
exact ⟨y, 1, v.ne_top_iff_one.mp hv.ne_top, by rw [map_one, inv_one, mul_one]⟩
-#align prime_spectrum.infi_localization_eq_bot PrimeSpectrum.infᵢ_localization_eq_bot
+#align prime_spectrum.infi_localization_eq_bot PrimeSpectrum.iInf_localization_eq_bot
end PrimeSpectrum
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -85,7 +85,6 @@ theorem toPrimeSpectrum_continuous : Continuous <| @toPrimeSpectrum R _ :=
#align maximal_spectrum.to_prime_spectrum_continuous MaximalSpectrum.toPrimeSpectrum_continuous
variable (R)
-
variable [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
/-- An integral domain is equal to the intersection of its localizations at all its maximal ideals
@@ -123,7 +122,6 @@ end MaximalSpectrum
namespace PrimeSpectrum
variable (R)
-
variable [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
/-- An integral domain is equal to the intersection of its localizations at all its prime ideals
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -28,7 +28,7 @@ natural inclusion into the prime spectrum to avoid API duplication for zero loci
noncomputable section
-open Classical
+open scoped Classical
universe u v
@@ -2,15 +2,12 @@
Copyright (c) 2022 David Kurniadi Angdinata. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Kurniadi Angdinata
-
-! This file was ported from Lean 3 source module algebraic_geometry.prime_spectrum.maximal
-! leanprover-community/mathlib commit 052f6013363326d50cb99c6939814a4b8eb7b301
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.AlgebraicGeometry.PrimeSpectrum.Basic
import Mathlib.RingTheory.Localization.AsSubring
+#align_import algebraic_geometry.prime_spectrum.maximal from "leanprover-community/mathlib"@"052f6013363326d50cb99c6939814a4b8eb7b301"
+
/-!
# Maximal spectrum of a commutative ring
@@ -131,8 +131,8 @@ variable [IsDomain R] (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
/-- An integral domain is equal to the intersection of its localizations at all its prime ideals
viewed as subalgebras of its field of fractions. -/
-theorem iInf_localization_eq_bot : (⨅ v : PrimeSpectrum R,
- Localization.subalgebra.ofField K _ <| v.asIdeal.primeCompl_le_nonZeroDivisors) = ⊥ := by
+theorem iInf_localization_eq_bot : ⨅ v : PrimeSpectrum R,
+ Localization.subalgebra.ofField K _ (v.asIdeal.primeCompl_le_nonZeroDivisors) = ⊥ := by
ext x
rw [Algebra.mem_iInf]
constructor
The unported dependencies are