ring_theory.valuation.quotient
⟷
Mathlib.RingTheory.Valuation.Quotient
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kevin Buzzard, Johan Commelin, Patrick Massot
-/
-import Mathbin.RingTheory.Valuation.Basic
-import Mathbin.RingTheory.Ideal.QuotientOperations
+import RingTheory.Valuation.Basic
+import RingTheory.Ideal.QuotientOperations
#align_import ring_theory.valuation.quotient from "leanprover-community/mathlib"@"19cb3751e5e9b3d97adb51023949c50c13b5fdfd"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -46,7 +46,7 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
toFun := v.onQuotVal hJ
map_zero' := v.map_zero
map_one' := v.map_one
- map_mul' xbar ybar := Quotient.ind₂' v.map_mul xbar ybar
+ map_mul' xbar ybar := Quotient.ind₂' v.map_hMul xbar ybar
map_add_le_max' xbar ybar := Quotient.ind₂' v.map_add xbar ybar
#align valuation.on_quot Valuation.onQuot
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kevin Buzzard, Johan Commelin, Patrick Massot
-
-! This file was ported from Lean 3 source module ring_theory.valuation.quotient
-! leanprover-community/mathlib commit 19cb3751e5e9b3d97adb51023949c50c13b5fdfd
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.Valuation.Basic
import Mathbin.RingTheory.Ideal.QuotientOperations
+#align_import ring_theory.valuation.quotient from "leanprover-community/mathlib"@"19cb3751e5e9b3d97adb51023949c50c13b5fdfd"
+
/-!
# The valuation on a quotient ring
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -54,23 +54,30 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
#align valuation.on_quot Valuation.onQuot
-/
+#print Valuation.onQuot_comap_eq /-
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
(v.onQuot hJ).comap (Ideal.Quotient.mk J) = v :=
ext fun r => rfl
#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eq
+-/
+#print Valuation.self_le_supp_comap /-
theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp := by rw [comap_supp, ← Ideal.map_le_iff_le_comap];
simp
#align valuation.self_le_supp_comap Valuation.self_le_supp_comap
+-/
+#print Valuation.comap_onQuot_eq /-
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
ext <| by rintro ⟨x⟩; rfl
#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eq
+-/
+#print Valuation.supp_quot /-
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
@@ -82,10 +89,13 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
· rw [Ideal.map_le_iff_le_comap]
intro x hx; exact hx
#align valuation.supp_quot Valuation.supp_quot
+-/
+#print Valuation.supp_quot_supp /-
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 := by rw [supp_quot];
exact Ideal.map_quotient_self _
#align valuation.supp_quot_supp Valuation.supp_quot_supp
+-/
end Valuation
@@ -114,37 +124,49 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : AddValuation (R ⧸ J) Γ₀ :=
#align add_valuation.on_quot AddValuation.onQuot
-/
+#print AddValuation.onQuot_comap_eq /-
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
(v.onQuot hJ).comap (Ideal.Quotient.mk J) = v :=
v.onQuot_comap_eq hJ
#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eq
+-/
+#print AddValuation.comap_supp /-
theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
supp (v.comap f) = Ideal.comap f v.supp :=
v.comap_supp f
#align add_valuation.comap_supp AddValuation.comap_supp
+-/
+#print AddValuation.self_le_supp_comap /-
theorem self_le_supp_comap (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
v.self_le_supp_comap J
#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comap
+-/
+#print AddValuation.comap_onQuot_eq /-
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
v.comap_onQuot_eq J
#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eq
+-/
+#print AddValuation.supp_quot /-
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
v.supp_quot hJ
#align add_valuation.supp_quot AddValuation.supp_quot
+-/
+#print AddValuation.supp_quot_supp /-
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
v.supp_quot_supp
#align add_valuation.supp_quot_supp AddValuation.supp_quot_supp
+-/
end AddValuation
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -39,7 +39,6 @@ def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
v a = v (b + -(-a + b)) := by simp
_ = v b :=
v.map_add_supp b <| (Ideal.neg_mem_iff _).2 <| hJ <| QuotientAddGroup.leftRel_apply.mp h
-
#align valuation.on_quot_val Valuation.onQuotVal
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -30,6 +30,7 @@ variable {R Γ₀ : Type _} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
variable (v : Valuation R Γ₀)
+#print Valuation.onQuotVal /-
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
@@ -40,7 +41,9 @@ def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
v.map_add_supp b <| (Ideal.neg_mem_iff _).2 <| hJ <| QuotientAddGroup.leftRel_apply.mp h
#align valuation.on_quot_val Valuation.onQuotVal
+-/
+#print Valuation.onQuot /-
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
where
@@ -50,6 +53,7 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
map_mul' xbar ybar := Quotient.ind₂' v.map_mul xbar ybar
map_add_le_max' xbar ybar := Quotient.ind₂' v.map_add xbar ybar
#align valuation.on_quot Valuation.onQuot
+-/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
@@ -96,16 +100,20 @@ variable (v : AddValuation R Γ₀)
attribute [local reducible] AddValuation
+#print AddValuation.onQuotVal /-
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ :=
v.onQuotVal hJ
#align add_valuation.on_quot_val AddValuation.onQuotVal
+-/
+#print AddValuation.onQuot /-
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : AddValuation (R ⧸ J) Γ₀ :=
v.onQuot hJ
#align add_valuation.on_quot AddValuation.onQuot
+-/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -30,12 +30,6 @@ variable {R Γ₀ : Type _} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
variable (v : Valuation R Γ₀)
-/- warning: valuation.on_quot_val -> Valuation.onQuotVal is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) -> Γ₀
-but is expected to have type
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) -> Γ₀
-Case conversion may be inaccurate. Consider using '#align valuation.on_quot_val Valuation.onQuotValₓ'. -/
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
@@ -47,12 +41,6 @@ def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
#align valuation.on_quot_val Valuation.onQuotVal
-/- warning: valuation.on_quot -> Valuation.onQuot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))
-but is expected to have type
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))
-Case conversion may be inaccurate. Consider using '#align valuation.on_quot Valuation.onQuotₓ'. -/
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
where
@@ -63,47 +51,23 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
map_add_le_max' xbar ybar := Quotient.ind₂' v.map_add xbar ybar
#align valuation.on_quot Valuation.onQuot
-/- warning: valuation.on_quot_comap_eq -> Valuation.onQuot_comap_eq is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
-Case conversion may be inaccurate. Consider using '#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eqₓ'. -/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
(v.onQuot hJ).comap (Ideal.Quotient.mk J) = v :=
ext fun r => rfl
#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eq
-/- warning: valuation.self_le_supp_comap -> Valuation.self_le_supp_comap is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
-Case conversion may be inaccurate. Consider using '#align valuation.self_le_supp_comap Valuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp := by rw [comap_supp, ← Ideal.map_le_iff_le_comap];
simp
#align valuation.self_le_supp_comap Valuation.self_le_supp_comap
-/- warning: valuation.comap_on_quot_eq -> Valuation.comap_onQuot_eq is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
-Case conversion may be inaccurate. Consider using '#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eqₓ'. -/
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
ext <| by rintro ⟨x⟩; rfl
#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eq
-/- warning: valuation.supp_quot -> Valuation.supp_quot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 J) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 J) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))
-Case conversion may be inaccurate. Consider using '#align valuation.supp_quot Valuation.supp_quotₓ'. -/
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
@@ -116,9 +80,6 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
intro x hx; exact hx
#align valuation.supp_quot Valuation.supp_quot
-/- warning: valuation.supp_quot_supp -> Valuation.supp_quot_supp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align valuation.supp_quot_supp Valuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 := by rw [supp_quot];
exact Ideal.map_quotient_self _
#align valuation.supp_quot_supp Valuation.supp_quot_supp
@@ -135,90 +96,45 @@ variable (v : AddValuation R Γ₀)
attribute [local reducible] AddValuation
-/- warning: add_valuation.on_quot_val -> AddValuation.onQuotVal is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) -> Γ₀
-but is expected to have type
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) -> Γ₀
-Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot_val AddValuation.onQuotValₓ'. -/
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ :=
v.onQuotVal hJ
#align add_valuation.on_quot_val AddValuation.onQuotVal
-/- warning: add_valuation.on_quot -> AddValuation.onQuot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2)
-but is expected to have type
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2)
-Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot AddValuation.onQuotₓ'. -/
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : AddValuation (R ⧸ J) Γ₀ :=
v.onQuot hJ
#align add_valuation.on_quot AddValuation.onQuot
-/- warning: add_valuation.on_quot_comap_eq -> AddValuation.onQuot_comap_eq is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
-Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eqₓ'. -/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
(v.onQuot hJ).comap (Ideal.Quotient.mk J) = v :=
v.onQuot_comap_eq hJ
#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eq
-/- warning: add_valuation.comap_supp -> AddValuation.comap_supp is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3))) (AddValuation.supp.{u3, u2} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u1, u2, u3} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1) S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u1, max u3 u1} S R (RingHom.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.ringHomClass.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) f (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u2} S R (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (AddValuation.supp.{u3, u1} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u2, u1, u3} R Γ₀ (CommRing.toRing.{u2} R _inst_1) _inst_2 S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u2, max u2 u3} S R (RingHom.{u3, u2} S R (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.instRingHomClassRingHom.{u3, u2} S R (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) f (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
-Case conversion may be inaccurate. Consider using '#align add_valuation.comap_supp AddValuation.comap_suppₓ'. -/
theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
supp (v.comap f) = Ideal.comap f v.supp :=
v.comap_supp f
#align add_valuation.comap_supp AddValuation.comap_supp
-/- warning: add_valuation.self_le_supp_comap -> AddValuation.self_le_supp_comap is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
-Case conversion may be inaccurate. Consider using '#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
v.self_le_supp_comap J
#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comap
-/- warning: add_valuation.comap_on_quot_eq -> AddValuation.comap_onQuot_eq is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
-Case conversion may be inaccurate. Consider using '#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eqₓ'. -/
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
v.comap_onQuot_eq J
#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eq
-/- warning: add_valuation.supp_quot -> AddValuation.supp_quot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
-Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot AddValuation.supp_quotₓ'. -/
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
v.supp_quot hJ
#align add_valuation.supp_quot AddValuation.supp_quot
-/- warning: add_valuation.supp_quot_supp -> AddValuation.supp_quot_supp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot_supp AddValuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
v.supp_quot_supp
#align add_valuation.supp_quot_supp AddValuation.supp_quot_supp
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -82,9 +82,7 @@ but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
Case conversion may be inaccurate. Consider using '#align valuation.self_le_supp_comap Valuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
- J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
- by
- rw [comap_supp, ← Ideal.map_le_iff_le_comap]
+ J ≤ (v.comap (Ideal.Quotient.mk J)).supp := by rw [comap_supp, ← Ideal.map_le_iff_le_comap];
simp
#align valuation.self_le_supp_comap Valuation.self_le_supp_comap
@@ -97,9 +95,7 @@ Case conversion may be inaccurate. Consider using '#align valuation.comap_on_quo
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
- ext <| by
- rintro ⟨x⟩
- rfl
+ ext <| by rintro ⟨x⟩; rfl
#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eq
/- warning: valuation.supp_quot -> Valuation.supp_quot is a dubious translation:
@@ -117,16 +113,13 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
apply Ideal.subset_span
exact ⟨x, hx, rfl⟩
· rw [Ideal.map_le_iff_le_comap]
- intro x hx
- exact hx
+ intro x hx; exact hx
#align valuation.supp_quot Valuation.supp_quot
/- warning: valuation.supp_quot_supp -> Valuation.supp_quot_supp is a dubious translation:
<too large>
Case conversion may be inaccurate. Consider using '#align valuation.supp_quot_supp Valuation.supp_quot_suppₓ'. -/
-theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
- by
- rw [supp_quot]
+theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 := by rw [supp_quot];
exact Ideal.map_quotient_self _
#align valuation.supp_quot_supp Valuation.supp_quot_supp
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -122,10 +122,7 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
#align valuation.supp_quot Valuation.supp_quot
/- warning: valuation.supp_quot_supp -> Valuation.supp_quot_supp is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) 0 (OfNat.mk.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.zero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (MulZeroClass.toHasZero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Semiring.toNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (IdemSemiring.toSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Submodule.idemSemiring.{u1, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))) (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))) (Algebra.id.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))))))))))))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align valuation.supp_quot_supp Valuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
by
@@ -227,10 +224,7 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
#align add_valuation.supp_quot AddValuation.supp_quot
/- warning: add_valuation.supp_quot_supp -> AddValuation.supp_quot_supp is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v) (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))) (OfNat.ofNat.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) 0 (OfNat.mk.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) 0 (Zero.zero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (MulZeroClass.toHasZero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (Semiring.toNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (IdemSemiring.toSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (Submodule.idemSemiring.{u1, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))) (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))) (Algebra.id.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))))))))))))
-but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Valuation.onQuot.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v) (le_rfl.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot_supp AddValuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
v.supp_quot_supp
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -30,7 +30,12 @@ variable {R Γ₀ : Type _} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
variable (v : Valuation R Γ₀)
-#print Valuation.onQuotVal /-
+/- warning: valuation.on_quot_val -> Valuation.onQuotVal is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) -> Γ₀
+but is expected to have type
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) -> Γ₀
+Case conversion may be inaccurate. Consider using '#align valuation.on_quot_val Valuation.onQuotValₓ'. -/
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
@@ -41,9 +46,13 @@ def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
v.map_add_supp b <| (Ideal.neg_mem_iff _).2 <| hJ <| QuotientAddGroup.leftRel_apply.mp h
#align valuation.on_quot_val Valuation.onQuotVal
--/
-#print Valuation.onQuot /-
+/- warning: valuation.on_quot -> Valuation.onQuot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))
+but is expected to have type
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) -> (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))
+Case conversion may be inaccurate. Consider using '#align valuation.on_quot Valuation.onQuotₓ'. -/
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
where
@@ -53,11 +62,10 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
map_mul' xbar ybar := Quotient.ind₂' v.map_mul xbar ybar
map_add_le_max' xbar ybar := Quotient.ind₂' v.map_add xbar ybar
#align valuation.on_quot Valuation.onQuot
--/
/- warning: valuation.on_quot_comap_eq -> Valuation.onQuot_comap_eq is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
Case conversion may be inaccurate. Consider using '#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eqₓ'. -/
@@ -69,7 +77,7 @@ theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
/- warning: valuation.self_le_supp_comap -> Valuation.self_le_supp_comap is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
Case conversion may be inaccurate. Consider using '#align valuation.self_le_supp_comap Valuation.self_le_supp_comapₓ'. -/
@@ -96,7 +104,7 @@ theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
/- warning: valuation.supp_quot -> Valuation.supp_quot is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 J) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 J) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))
but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 J) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))
Case conversion may be inaccurate. Consider using '#align valuation.supp_quot Valuation.supp_quotₓ'. -/
@@ -137,24 +145,32 @@ variable (v : AddValuation R Γ₀)
attribute [local reducible] AddValuation
-#print AddValuation.onQuotVal /-
+/- warning: add_valuation.on_quot_val -> AddValuation.onQuotVal is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) -> Γ₀
+but is expected to have type
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) -> Γ₀
+Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot_val AddValuation.onQuotValₓ'. -/
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ :=
v.onQuotVal hJ
#align add_valuation.on_quot_val AddValuation.onQuotVal
--/
-#print AddValuation.onQuot /-
+/- warning: add_valuation.on_quot -> AddValuation.onQuot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2)
+but is expected to have type
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))}, (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) -> (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2)
+Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot AddValuation.onQuotₓ'. -/
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : AddValuation (R ⧸ J) Γ₀ :=
v.onQuot hJ
#align add_valuation.on_quot AddValuation.onQuot
--/
/- warning: add_valuation.on_quot_comap_eq -> AddValuation.onQuot_comap_eq is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eqₓ'. -/
@@ -177,7 +193,7 @@ theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
/- warning: add_valuation.self_le_supp_comap -> AddValuation.self_le_supp_comap is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
Case conversion may be inaccurate. Consider using '#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comapₓ'. -/
@@ -200,7 +216,7 @@ theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
/- warning: add_valuation.supp_quot -> AddValuation.supp_quot is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toHasLe.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
but is expected to have type
forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot AddValuation.supp_quotₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -59,7 +59,7 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
Case conversion may be inaccurate. Consider using '#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eqₓ'. -/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
@@ -71,7 +71,7 @@ theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
Case conversion may be inaccurate. Consider using '#align valuation.self_le_supp_comap Valuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
@@ -84,7 +84,7 @@ theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
Case conversion may be inaccurate. Consider using '#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eqₓ'. -/
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
@@ -98,7 +98,7 @@ theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 J) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 J) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 J) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))
Case conversion may be inaccurate. Consider using '#align valuation.supp_quot Valuation.supp_quotₓ'. -/
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
@@ -117,7 +117,7 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) 0 (OfNat.mk.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.zero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (MulZeroClass.toHasZero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Semiring.toNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (IdemSemiring.toSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Submodule.idemSemiring.{u1, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))) (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))) (Algebra.id.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))))))))))))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))))))))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))))))))
Case conversion may be inaccurate. Consider using '#align valuation.supp_quot_supp Valuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
by
@@ -156,7 +156,7 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : AddValuation (R ⧸ J) Γ₀ :=
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eqₓ'. -/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
@@ -168,7 +168,7 @@ theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3))) (AddValuation.supp.{u3, u2} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u1, u2, u3} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1) S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u1, max u3 u1} S R (RingHom.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.ringHomClass.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) f (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u2} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3))) (AddValuation.supp.{u3, u1} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u2, u1, u3} R Γ₀ (CommRing.toRing.{u2} R _inst_1) _inst_2 S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u2, max u2 u3} S R (RingHom.{u3, u2} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.instRingHomClassRingHom.{u3, u2} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) f (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u2} S R (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (AddValuation.supp.{u3, u1} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u2, u1, u3} R Γ₀ (CommRing.toRing.{u2} R _inst_1) _inst_2 S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u2, max u2 u3} S R (RingHom.{u3, u2} S R (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.instRingHomClassRingHom.{u3, u2} S R (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_3))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) f (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
Case conversion may be inaccurate. Consider using '#align add_valuation.comap_supp AddValuation.comap_suppₓ'. -/
theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
supp (v.comap f) = Ideal.comap f v.supp :=
@@ -179,7 +179,7 @@ theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
Case conversion may be inaccurate. Consider using '#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
@@ -190,7 +190,7 @@ theorem self_le_supp_comap (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
Case conversion may be inaccurate. Consider using '#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eqₓ'. -/
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
@@ -202,7 +202,7 @@ theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot AddValuation.supp_quotₓ'. -/
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
@@ -214,7 +214,7 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
lean 3 declaration is
forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v) (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))) (OfNat.ofNat.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) 0 (OfNat.mk.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) 0 (Zero.zero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (MulZeroClass.toHasZero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (Semiring.toNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (IdemSemiring.toSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (Submodule.idemSemiring.{u1, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))) (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))) (Algebra.id.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))))))))))))
but is expected to have type
- forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Valuation.onQuot.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v) (le_rfl.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))))))))
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Valuation.onQuot.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v) (le_rfl.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))))))))
Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot_supp AddValuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
v.supp_quot_supp
mathlib commit https://github.com/leanprover-community/mathlib/commit/284fdd2962e67d2932fa3a79ce19fcf92d38e228
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kevin Buzzard, Johan Commelin, Patrick Massot
! This file was ported from Lean 3 source module ring_theory.valuation.quotient
-! leanprover-community/mathlib commit da420a8c6dd5bdfb85c4ced85c34388f633bc6ff
+! leanprover-community/mathlib commit 19cb3751e5e9b3d97adb51023949c50c13b5fdfd
! 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.Ideal.QuotientOperations
/-!
# The valuation on a quotient ring
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The support of a valuation `v : valuation R Γ₀` is `supp v`. If `J` is an ideal of `R`
with `h : J ⊆ supp v` then the induced valuation
on R / J = `ideal.quotient J` is `on_quot v h`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/5ec62c8106221a3f9160e4e4fcc3eed79fe213e9
@@ -27,6 +27,7 @@ variable {R Γ₀ : Type _} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
variable (v : Valuation R Γ₀)
+#print Valuation.onQuotVal /-
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
@@ -37,7 +38,9 @@ def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
v.map_add_supp b <| (Ideal.neg_mem_iff _).2 <| hJ <| QuotientAddGroup.leftRel_apply.mp h
#align valuation.on_quot_val Valuation.onQuotVal
+-/
+#print Valuation.onQuot /-
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
where
@@ -47,13 +50,26 @@ def onQuot {J : Ideal R} (hJ : J ≤ supp v) : Valuation (R ⧸ J) Γ₀
map_mul' xbar ybar := Quotient.ind₂' v.map_mul xbar ybar
map_add_le_max' xbar ybar := Quotient.ind₂' v.map_add xbar ybar
#align valuation.on_quot Valuation.onQuot
+-/
+/- warning: valuation.on_quot_comap_eq -> Valuation.onQuot_comap_eq is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+Case conversion may be inaccurate. Consider using '#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eqₓ'. -/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
(v.onQuot hJ).comap (Ideal.Quotient.mk J) = v :=
ext fun r => rfl
#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eq
+/- warning: valuation.self_le_supp_comap -> Valuation.self_le_supp_comap is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
+Case conversion may be inaccurate. Consider using '#align valuation.self_le_supp_comap Valuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
by
@@ -61,6 +77,12 @@ theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
simp
#align valuation.self_le_supp_comap Valuation.self_le_supp_comap
+/- warning: valuation.comap_on_quot_eq -> Valuation.comap_onQuot_eq is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))), Eq.{max (succ u1) (succ u2)} (Valuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))), Eq.{max (succ u2) (succ u1)} (Valuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (Valuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (Valuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
+Case conversion may be inaccurate. Consider using '#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eqₓ'. -/
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
@@ -69,6 +91,12 @@ theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
rfl
#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eq
+/- warning: valuation.supp_quot -> Valuation.supp_quot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 J) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 J) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))
+Case conversion may be inaccurate. Consider using '#align valuation.supp_quot Valuation.supp_quotₓ'. -/
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
@@ -82,6 +110,12 @@ theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
exact hx
#align valuation.supp_quot Valuation.supp_quot
+/- warning: valuation.supp_quot_supp -> Valuation.supp_quot_supp is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) 0 (OfNat.mk.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.zero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (MulZeroClass.toHasZero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Semiring.toNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (IdemSemiring.toSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))))) (Submodule.idemSemiring.{u1, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v))) (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))) (Algebra.id.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (Valuation.supp.{u1, u2} R Γ₀ _inst_1 _inst_2 v)))))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedCommMonoidWithZero.{u1} Γ₀] (v : Valuation.{u2, u1} R Γ₀ _inst_2 (CommRing.toRing.{u2} R _inst_1)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Valuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) Γ₀ (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) _inst_2 (Valuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v) (le_rfl.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R Γ₀ _inst_1 _inst_2 v)))))))))
+Case conversion may be inaccurate. Consider using '#align valuation.supp_quot_supp Valuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
by
rw [supp_quot]
@@ -100,45 +134,85 @@ variable (v : AddValuation R Γ₀)
attribute [local reducible] AddValuation
+#print AddValuation.onQuotVal /-
/-- If `hJ : J ⊆ supp v` then `on_quot_val hJ` is the induced function on R/J as a function.
Note: it's just the function; the valuation is `on_quot hJ`. -/
def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ :=
v.onQuotVal hJ
#align add_valuation.on_quot_val AddValuation.onQuotVal
+-/
+#print AddValuation.onQuot /-
/-- The extension of valuation v on R to valuation on R/J if J ⊆ supp v -/
def onQuot {J : Ideal R} (hJ : J ≤ supp v) : AddValuation (R ⧸ J) Γ₀ :=
v.onQuot hJ
#align add_valuation.on_quot AddValuation.onQuot
+-/
+/- warning: add_valuation.on_quot_comap_eq -> AddValuation.onQuot_comap_eq is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) v
+Case conversion may be inaccurate. Consider using '#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eqₓ'. -/
@[simp]
theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
(v.onQuot hJ).comap (Ideal.Quotient.mk J) = v :=
v.onQuot_comap_eq hJ
#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eq
+/- warning: add_valuation.comap_supp -> AddValuation.comap_supp is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3))) (AddValuation.supp.{u3, u2} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u1, u2, u3} R Γ₀ _inst_2 (CommRing.toRing.{u1} R _inst_1) S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u1, max u3 u1} S R (RingHom.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.ringHomClass.{u3, u1} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) f (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {S : Type.{u3}} [_inst_3 : CommRing.{u3} S] (f : RingHom.{u3, u2} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))), Eq.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3))) (AddValuation.supp.{u3, u1} S Γ₀ _inst_2 _inst_3 (AddValuation.comap.{u2, u1, u3} R Γ₀ (CommRing.toRing.{u2} R _inst_1) _inst_2 S (CommRing.toRing.{u3} S _inst_3) f v)) (Ideal.comap.{u3, u2, max u2 u3} S R (RingHom.{u3, u2} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_3)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.instRingHomClassRingHom.{u3, u2} S R (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) f (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
+Case conversion may be inaccurate. Consider using '#align add_valuation.comap_supp AddValuation.comap_suppₓ'. -/
theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
supp (v.comap f) = Ideal.comap f v.supp :=
v.comap_supp f
#align add_valuation.comap_supp AddValuation.comap_supp
+/- warning: add_valuation.self_le_supp_comap -> AddValuation.self_le_supp_comap is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v))
+Case conversion may be inaccurate. Consider using '#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comapₓ'. -/
theorem self_le_supp_comap (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp :=
v.self_le_supp_comap J
#align add_valuation.self_le_supp_comap AddValuation.self_le_supp_comap
+/- warning: add_valuation.comap_on_quot_eq -> AddValuation.comap_onQuot_eq is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (v : AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u1) (succ u2)} (AddValuation.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u1, u2, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)) R (CommRing.toRing.{u1} R _inst_1) (Ideal.Quotient.mk.{u1} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (v : AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2), Eq.{max (succ u2) (succ u1)} (AddValuation.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) Γ₀ _inst_2) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 (AddValuation.comap.{u2, u1, u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)) _inst_2 R (CommRing.toRing.{u2} R _inst_1) (Ideal.Quotient.mk.{u2} R _inst_1 J) v) J (AddValuation.self_le_supp_comap.{u1, u2} R Γ₀ _inst_1 _inst_2 J v)) v
+Case conversion may be inaccurate. Consider using '#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eqₓ'. -/
@[simp]
theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
(v.comap (Ideal.Quotient.mk J)).onQuot (v.self_le_supp_comap J) = v :=
v.comap_onQuot_eq J
#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eq
+/- warning: add_valuation.supp_quot -> AddValuation.supp_quot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))} (hJ : LE.le.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Preorder.toLE.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) J (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J)))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 J) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u1, u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (RingHom.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))) (RingHom.ringHomClass.{u1, u1} R (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ring.toNonAssocRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) J) (Ideal.Quotient.commRing.{u1} R _inst_1 J))))) (Ideal.Quotient.mk.{u1} R _inst_1 J) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2) {J : Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))} (hJ : LE.le.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Preorder.toLE.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) J (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v)), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J)))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 J) (AddValuation.onQuot.{u2, u1} R Γ₀ _inst_1 _inst_2 v J hJ)) (Ideal.map.{u2, u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (RingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))) (RingHom.instRingHomClassRingHom.{u2, u2} R (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) J) (Ideal.Quotient.commRing.{u2} R _inst_1 J))))) (Ideal.Quotient.mk.{u2} R _inst_1 J) (AddValuation.supp.{u2, u1} R Γ₀ _inst_2 _inst_1 v))
+Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot AddValuation.supp_quotₓ'. -/
/-- The quotient valuation on R/J has support supp(v)/J if J ⊆ supp v. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
v.supp_quot hJ
#align add_valuation.supp_quot AddValuation.supp_quot
+/- warning: add_valuation.supp_quot_supp -> AddValuation.supp_quot_supp is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u2} Γ₀] (v : AddValuation.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) Γ₀ _inst_2), Eq.{succ u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (AddValuation.supp.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (AddValuation.onQuot.{u1, u2} R Γ₀ _inst_1 _inst_2 v (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v) (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))) (OfNat.ofNat.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) 0 (OfNat.mk.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) 0 (Zero.zero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (MulZeroClass.toHasZero.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (Semiring.toNonAssocSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (IdemSemiring.toSemiring.{u1} (Ideal.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))))) (Submodule.idemSemiring.{u1, u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v))) (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ring.toSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toRing.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))) (Algebra.id.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (CommRing.toCommSemiring.{u1} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)) (Ideal.Quotient.commRing.{u1} R _inst_1 (AddValuation.supp.{u1, u2} R Γ₀ _inst_2 _inst_1 v)))))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} {Γ₀ : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : LinearOrderedAddCommMonoidWithTop.{u1} Γ₀] (v : AddValuation.{u2, u1} R (CommRing.toRing.{u2} R _inst_1) Γ₀ _inst_2), Eq.{succ u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (AddValuation.supp.{u2, u1} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) Γ₀ _inst_2 (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Valuation.onQuot.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v) (le_rfl.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))) (OfNat.ofNat.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) 0 (Zero.toOfNat0.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommMonoidWithZero.toZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (CommSemiring.toCommMonoidWithZero.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (IdemCommSemiring.toCommSemiring.{u2} (Ideal.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v))))) (Ideal.instIdemCommSemiringIdealToSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} R (Ideal.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToRing.{u2} R _inst_1) (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)) (Ideal.Quotient.commRing.{u2} R _inst_1 (Valuation.supp.{u2, u1} R (Multiplicative.{u1} (OrderDual.{u1} Γ₀)) _inst_1 (instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual.{u1} Γ₀ _inst_2) v)))))))))
+Case conversion may be inaccurate. Consider using '#align add_valuation.supp_quot_supp AddValuation.supp_quot_suppₓ'. -/
theorem supp_quot_supp : supp (v.onQuot le_rfl) = 0 :=
v.supp_quot_supp
#align add_valuation.supp_quot_supp AddValuation.supp_quot_supp
mathlib commit https://github.com/leanprover-community/mathlib/commit/f24cc2891c0e328f0ee8c57387103aa462c44b5e
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)
@@ -21,7 +21,6 @@ on `R / J` = `Ideal.Quotient J` is `onQuot v h`.
namespace Valuation
variable {R Γ₀ : Type*} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
-
variable (v : Valuation R Γ₀)
/-- If `hJ : J ⊆ supp v` then `onQuotVal hJ` is the induced function on `R / J` as a function.
@@ -85,9 +84,7 @@ end Valuation
namespace AddValuation
variable {R Γ₀ : Type*}
-
variable [CommRing R] [LinearOrderedAddCommMonoidWithTop Γ₀]
-
variable (v : AddValuation R Γ₀)
-- attribute [local reducible] AddValuation -- Porting note: reducible not supported
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -20,7 +20,7 @@ on `R / J` = `Ideal.Quotient J` is `onQuot v h`.
namespace Valuation
-variable {R Γ₀ : Type _} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
+variable {R Γ₀ : Type*} [CommRing R] [LinearOrderedCommMonoidWithZero Γ₀]
variable (v : Valuation R Γ₀)
@@ -84,7 +84,7 @@ end Valuation
namespace AddValuation
-variable {R Γ₀ : Type _}
+variable {R Γ₀ : Type*}
variable [CommRing R] [LinearOrderedAddCommMonoidWithTop Γ₀]
@@ -109,7 +109,7 @@ theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
Valuation.onQuot_comap_eq v hJ
#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eq
-theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
+theorem comap_supp {S : Type*} [CommRing S] (f : S →+* R) :
supp (v.comap f) = Ideal.comap f v.supp :=
Valuation.comap_supp v f
#align add_valuation.comap_supp AddValuation.comap_supp
@@ -2,15 +2,12 @@
Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kevin Buzzard, Johan Commelin, Patrick Massot
-
-! This file was ported from Lean 3 source module ring_theory.valuation.quotient
-! leanprover-community/mathlib commit da420a8c6dd5bdfb85c4ced85c34388f633bc6ff
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.Valuation.Basic
import Mathlib.RingTheory.Ideal.QuotientOperations
+#align_import ring_theory.valuation.quotient from "leanprover-community/mathlib"@"da420a8c6dd5bdfb85c4ced85c34388f633bc6ff"
+
/-!
# The valuation on a quotient ring
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -52,7 +52,6 @@ theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
ext fun _ => rfl
#align valuation.on_quot_comap_eq Valuation.onQuot_comap_eq
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
theorem self_le_supp_comap (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
J ≤ (v.comap (Ideal.Quotient.mk J)).supp := by
rw [comap_supp, ← Ideal.map_le_iff_le_comap]
@@ -67,7 +66,6 @@ theorem comap_onQuot_eq (J : Ideal R) (v : Valuation (R ⧸ J) Γ₀) :
rfl
#align valuation.comap_on_quot_eq Valuation.comap_onQuot_eq
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
/-- The quotient valuation on `R / J` has support `(supp v) / J` if `J ⊆ supp v`. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) := by
@@ -114,7 +112,6 @@ theorem onQuot_comap_eq {J : Ideal R} (hJ : J ≤ supp v) :
Valuation.onQuot_comap_eq v hJ
#align add_valuation.on_quot_comap_eq AddValuation.onQuot_comap_eq
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
theorem comap_supp {S : Type _} [CommRing S] (f : S →+* R) :
supp (v.comap f) = Ideal.comap f v.supp :=
Valuation.comap_supp v f
@@ -131,7 +128,6 @@ theorem comap_onQuot_eq (J : Ideal R) (v : AddValuation (R ⧸ J) Γ₀) :
Valuation.comap_onQuot_eq J v
#align add_valuation.comap_on_quot_eq AddValuation.comap_onQuot_eq
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
/-- The quotient valuation on `R / J` has support `(supp v) / J` if `J ⊆ supp v`. -/
theorem supp_quot {J : Ideal R} (hJ : J ≤ supp v) :
supp (v.onQuot hJ) = (supp v).map (Ideal.Quotient.mk J) :=
This PR fixes two things:
align
statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align
). This is often seen in the mathport output after ending calc
blocks.#align
statements. (This was needed for a script I wrote for #3630.)@@ -35,7 +35,6 @@ def onQuotVal {J : Ideal R} (hJ : J ≤ supp v) : R ⧸ J → Γ₀ := fun q =>
v a = v (b + -(-a + b)) := by simp
_ = v b :=
v.map_add_supp b <| (Ideal.neg_mem_iff _).2 <| hJ <| QuotientAddGroup.leftRel_apply.mp h
-
#align valuation.on_quot_val Valuation.onQuotVal
/-- The extension of valuation `v` on `R` to valuation on `R / J` if `J ⊆ supp v`. -/
The unported dependencies are