/-
Copyright (c) 2020 Kenny Lau. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau

! This file was ported from Lean 3 source module ring_theory.valuation.integers
! leanprover-community/mathlib commit 1dac236edca9b4b6f5f00b1ad831e35f89472837
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.RingTheory.Valuation.Basic

/-!
# Ring of integers under a given valuation

> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
> Any changes to this file require a corresponding PR to mathlib4.

The elements with valuation less than or equal to 1.

TODO: Define characteristic predicate.
-/

universe u v w

namespace Valuation

section Ring

variable {R : Type u} {Γ₀ : Type v} [Ring R] [LinearOrderedCommGroupWithZero Γ₀]

variable (v : Valuation R Γ₀)

#print Valuation.integer /-
/-- The ring of integers under a given valuation is the subring of elements with valuation ≤ 1. -/
def integer : Subring R where
  carrier := { x | v x ≤ 1 }
  one_mem' := le_of_eq v.map_one
  mul_mem' x y hx hy := trans_rel_right (· ≤ ·) (v.map_mul x y) (mul_le_one' hx hy)
  zero_mem' := trans_rel_right (· ≤ ·) v.map_zero zero_le_one
  add_mem' x y hx hy := le_trans (v.map_add x y) (max_le hx hy)
  neg_mem' x hx := trans_rel_right (· ≤ ·) (v.map_neg x) hx
#align valuation.integer Valuation.integer
-/

end Ring

section CommRing

variable {R : Type u} {Γ₀ : Type v} [CommRing R] [LinearOrderedCommGroupWithZero Γ₀]

variable (v : Valuation R Γ₀)

variable (O : Type w) [CommRing O] [Algebra O R]

#print Valuation.Integers /-
/-- Given a valuation v : R → Γ₀ and a ring homomorphism O →+* R, we say that O is the integers of v
if f is injective, and its range is exactly `v.integer`. -/
structure Integers : Prop where
  hom_inj : Function.Injective (algebraMap O R)
  map_le_one : ∀ x, v (algebraMap O R x) ≤ 1
  exists_of_le_one : ∀ ⦃r⦄, v r ≤ 1 → ∃ x, algebraMap O R x = r
#align valuation.integers Valuation.Integers
-/

-- typeclass shortcut
instance : Algebra v.integer R :=
  Algebra.ofSubring v.integer

/- warning: valuation.integer.integers -> Valuation.integer.integers is a dubious translation:
lean 3 declaration is
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)), Valuation.Integers.{u1, u2, u1} R Γ₀ _inst_1 _inst_2 v (coeSort.{succ u1, succ (succ u1)} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (Subring.setLike.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Valuation.integer.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) _inst_2 v)) (Subring.toCommRing.{u1} R _inst_1 (Valuation.integer.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) _inst_2 v)) (Valuation.algebra.{u1, u2} R Γ₀ _inst_1 _inst_2 v)
but is expected to have type
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] (v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)), Valuation.Integers.{u1, u2, u1} R Γ₀ _inst_1 _inst_2 v (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (Subring.instSetLikeSubring.{u1} R (CommRing.toRing.{u1} R _inst_1))) x (Valuation.integer.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) _inst_2 v))) (Subring.toCommRing.{u1} R _inst_1 (Valuation.integer.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) _inst_2 v)) (Valuation.instAlgebraSubtypeMemSubringToRingInstMembershipInstSetLikeSubringIntegerToCommSemiringToCommRingToSemiring.{u1, u2} R Γ₀ _inst_1 _inst_2 v)
Case conversion may be inaccurate. Consider using '#align valuation.integer.integers Valuation.integer.integersₓ'. -/
theorem integer.integers : v.Integers v.integer :=
  { hom_inj := Subtype.coe_injective
    map_le_one := fun r => r.2
    exists_of_le_one := fun r hr => ⟨⟨r, hr⟩, rfl⟩ }
#align valuation.integer.integers Valuation.integer.integers

namespace Integers

variable {v O} (hv : Integers v O)

include hv

/- warning: valuation.integers.one_of_is_unit -> Valuation.Integers.one_of_isUnit is a dubious translation:
lean 3 declaration is
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))], (Valuation.Integers.{u1, u2, u3} R Γ₀ _inst_1 _inst_2 v O _inst_3 _inst_4) -> (forall {x : O}, (IsUnit.{u3} O (Ring.toMonoid.{u3} O (CommRing.toRing.{u3} O _inst_3)) x) -> (Eq.{succ u2} Γ₀ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) (fun (_x : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) => R -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => O -> R) (RingHom.hasCoeToFun.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (OfNat.ofNat.{u2} Γ₀ 1 (OfNat.mk.{u2} Γ₀ 1 (One.one.{u2} Γ₀ (MulOneClass.toHasOne.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (GroupWithZero.toMonoidWithZero.{u2} Γ₀ (CommGroupWithZero.toGroupWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toCommGroupWithZero.{u2} Γ₀ _inst_2)))))))))))
but is expected to have type
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))], (Valuation.Integers.{u1, u2, u3} R Γ₀ _inst_1 _inst_2 v O _inst_3 _inst_4) -> (forall {x : O}, (IsUnit.{u3} O (MonoidWithZero.toMonoid.{u3} O (Semiring.toMonoidWithZero.{u3} O (Ring.toSemiring.{u3} O (CommRing.toRing.{u3} O _inst_3)))) x) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1) (Valuation.instValuationClassValuation.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (DivisionCommMonoid.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (CommGroupWithZero.toDivisionCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (LinearOrderedCommGroupWithZero.toCommGroupWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) _inst_2))))))))))
Case conversion may be inaccurate. Consider using '#align valuation.integers.one_of_is_unit Valuation.Integers.one_of_isUnitₓ'. -/
theorem one_of_isUnit {x : O} (hx : IsUnit x) : v (algebraMap O R x) = 1 :=
  let ⟨u, hu⟩ := hx
  le_antisymm (hv.2 _) <|
    by
    rw [← v.map_one, ← (algebraMap O R).map_one, ← u.mul_inv, ← mul_one (v (algebraMap O R x)), hu,
      (algebraMap O R).map_mul, v.map_mul]
    exact mul_le_mul_left' (hv.2 (u⁻¹ : Units O)) _
#align valuation.integers.one_of_is_unit Valuation.Integers.one_of_isUnit

/- warning: valuation.integers.is_unit_of_one -> Valuation.Integers.isUnit_of_one is a dubious translation:
lean 3 declaration is
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))], (Valuation.Integers.{u1, u2, u3} R Γ₀ _inst_1 _inst_2 v O _inst_3 _inst_4) -> (forall {x : O}, (IsUnit.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => O -> R) (RingHom.hasCoeToFun.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) -> (Eq.{succ u2} Γ₀ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) (fun (_x : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) => R -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => O -> R) (RingHom.hasCoeToFun.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (OfNat.ofNat.{u2} Γ₀ 1 (OfNat.mk.{u2} Γ₀ 1 (One.one.{u2} Γ₀ (MulOneClass.toHasOne.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (GroupWithZero.toMonoidWithZero.{u2} Γ₀ (CommGroupWithZero.toGroupWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toCommGroupWithZero.{u2} Γ₀ _inst_2)))))))))) -> (IsUnit.{u3} O (Ring.toMonoid.{u3} O (CommRing.toRing.{u3} O _inst_3)) x))
but is expected to have type
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))], (Valuation.Integers.{u1, u2, u3} R Γ₀ _inst_1 _inst_2 v O _inst_3 _inst_4) -> (forall {x : O}, (IsUnit.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) x) (MonoidWithZero.toMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) x) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) x) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) x) _inst_1)))) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1) (Valuation.instValuationClassValuation.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (DivisionCommMonoid.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (CommGroupWithZero.toDivisionCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) (LinearOrderedCommGroupWithZero.toCommGroupWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x)) _inst_2))))))))) -> (IsUnit.{u3} O (MonoidWithZero.toMonoid.{u3} O (Semiring.toMonoidWithZero.{u3} O (Ring.toSemiring.{u3} O (CommRing.toRing.{u3} O _inst_3)))) x))
Case conversion may be inaccurate. Consider using '#align valuation.integers.is_unit_of_one Valuation.Integers.isUnit_of_oneₓ'. -/
theorem isUnit_of_one {x : O} (hx : IsUnit (algebraMap O R x)) (hvx : v (algebraMap O R x) = 1) :
    IsUnit x :=
  let ⟨u, hu⟩ := hx
  have h1 : v u ≤ 1 := hu.symm ▸ hv.2 x
  have h2 : v (u⁻¹ : Rˣ) ≤ 1 := by
    rw [← one_mul (v _), ← hvx, ← v.map_mul, ← hu, u.mul_inv, hu, hvx, v.map_one]
  let ⟨r1, hr1⟩ := hv.3 h1
  let ⟨r2, hr2⟩ := hv.3 h2
  ⟨⟨r1, r2, hv.1 <| by rw [RingHom.map_mul, RingHom.map_one, hr1, hr2, Units.mul_inv],
      hv.1 <| by rw [RingHom.map_mul, RingHom.map_one, hr1, hr2, Units.inv_mul]⟩,
    hv.1 <| hr1.trans hu⟩
#align valuation.integers.is_unit_of_one Valuation.Integers.isUnit_of_one

/- warning: valuation.integers.le_of_dvd -> Valuation.Integers.le_of_dvd is a dubious translation:
lean 3 declaration is
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))], (Valuation.Integers.{u1, u2, u3} R Γ₀ _inst_1 _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, (Dvd.Dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) x y) -> (LE.le.{u2} Γ₀ (Preorder.toLE.{u2} Γ₀ (PartialOrder.toPreorder.{u2} Γ₀ (OrderedCommMonoid.toPartialOrder.{u2} Γ₀ (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) (fun (_x : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) => R -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => O -> R) (RingHom.hasCoeToFun.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) (fun (_x : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) => R -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => O -> R) (RingHom.hasCoeToFun.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x))))
but is expected to have type
  forall {R : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))], (Valuation.Integers.{u1, u2, u3} R Γ₀ _inst_1 _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, (Dvd.dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) x y) -> (LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (OrderedCommMonoid.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1) (Valuation.instValuationClassValuation.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1)) R Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (CommRing.toRing.{u1} R _inst_1) (Valuation.instValuationClassValuation.{u1, u2} R Γ₀ (CommRing.toRing.{u1} R _inst_1) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u3, u1} O R (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (algebraMap.{u3, u1} O R (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_4) x))))
Case conversion may be inaccurate. Consider using '#align valuation.integers.le_of_dvd Valuation.Integers.le_of_dvdₓ'. -/
theorem le_of_dvd {x y : O} (h : x ∣ y) : v (algebraMap O R y) ≤ v (algebraMap O R x) :=
  by
  let ⟨z, hz⟩ := h
  rw [← mul_one (v (algebraMap O R x)), hz, RingHom.map_mul, v.map_mul]
  exact mul_le_mul_left' (hv.2 z) _
#align valuation.integers.le_of_dvd Valuation.Integers.le_of_dvd

end Integers

end CommRing

section Field

variable {F : Type u} {Γ₀ : Type v} [Field F] [LinearOrderedCommGroupWithZero Γ₀]

variable {v : Valuation F Γ₀} {O : Type w} [CommRing O] [Algebra O F] (hv : Integers v O)

include hv

namespace Integers

/- warning: valuation.integers.dvd_of_le -> Valuation.Integers.dvd_of_le is a dubious translation:
lean 3 declaration is
  forall {F : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : Field.{u1} F] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))], (Valuation.Integers.{u1, u2, u3} F Γ₀ (Field.toCommRing.{u1} F _inst_1) _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, (LE.le.{u2} Γ₀ (Preorder.toLE.{u2} Γ₀ (PartialOrder.toPreorder.{u2} Γ₀ (OrderedCommMonoid.toPartialOrder.{u2} Γ₀ (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (fun (_x : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) => F -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (fun (_x : RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) => O -> F) (RingHom.hasCoeToFun.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) _inst_4) x)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (fun (_x : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) => F -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (fun (_x : RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) => O -> F) (RingHom.hasCoeToFun.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) _inst_4) y))) -> (Dvd.Dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) y x))
but is expected to have type
  forall {F : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : Field.{u1} F] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))], (Valuation.Integers.{u1, u2, u3} F Γ₀ (Field.toCommRing.{u1} F _inst_1) _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, (LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (OrderedCommMonoid.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulOneClass.toMul.{u1} F (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (Valuation.instValuationClassValuation.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulOneClass.toMul.{u1} F (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (Valuation.instValuationClassValuation.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y))) -> (Dvd.dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) y x))
Case conversion may be inaccurate. Consider using '#align valuation.integers.dvd_of_le Valuation.Integers.dvd_of_leₓ'. -/
theorem dvd_of_le {x y : O} (h : v (algebraMap O F x) ≤ v (algebraMap O F y)) : y ∣ x :=
  by_cases
    (fun hy : algebraMap O F y = 0 =>
      have hx : x = 0 :=
        hv.1 <|
          (algebraMap O F).map_zero.symm ▸ (v.zero_iff.1 <| le_zero_iff.1 (v.map_zero ▸ hy ▸ h))
      hx.symm ▸ dvd_zero y)
    fun hy : algebraMap O F y ≠ 0 =>
    have : v ((algebraMap O F y)⁻¹ * algebraMap O F x) ≤ 1 :=
      by
      rw [← v.map_one, ← inv_mul_cancel hy, v.map_mul, v.map_mul]
      exact mul_le_mul_left' h _
    let ⟨z, hz⟩ := hv.3 this
    ⟨z, hv.1 <| ((algebraMap O F).map_mul y z).symm ▸ hz.symm ▸ (mul_inv_cancel_left₀ hy _).symm⟩
#align valuation.integers.dvd_of_le Valuation.Integers.dvd_of_le

/- warning: valuation.integers.dvd_iff_le -> Valuation.Integers.dvd_iff_le is a dubious translation:
lean 3 declaration is
  forall {F : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : Field.{u1} F] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))], (Valuation.Integers.{u1, u2, u3} F Γ₀ (Field.toCommRing.{u1} F _inst_1) _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, Iff (Dvd.Dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) x y) (LE.le.{u2} Γ₀ (Preorder.toLE.{u2} Γ₀ (PartialOrder.toPreorder.{u2} Γ₀ (OrderedCommMonoid.toPartialOrder.{u2} Γ₀ (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (fun (_x : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) => F -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (fun (_x : RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) => O -> F) (RingHom.hasCoeToFun.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) _inst_4) y)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (fun (_x : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) => F -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (fun (_x : RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) => O -> F) (RingHom.hasCoeToFun.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) _inst_4) x))))
but is expected to have type
  forall {F : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : Field.{u1} F] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))], (Valuation.Integers.{u1, u2, u3} F Γ₀ (Field.toCommRing.{u1} F _inst_1) _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, Iff (Dvd.dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) x y) (LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (OrderedCommMonoid.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulOneClass.toMul.{u1} F (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (Valuation.instValuationClassValuation.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulOneClass.toMul.{u1} F (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (Valuation.instValuationClassValuation.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x))))
Case conversion may be inaccurate. Consider using '#align valuation.integers.dvd_iff_le Valuation.Integers.dvd_iff_leₓ'. -/
theorem dvd_iff_le {x y : O} : x ∣ y ↔ v (algebraMap O F y) ≤ v (algebraMap O F x) :=
  ⟨hv.le_of_dvd, hv.dvd_of_le⟩
#align valuation.integers.dvd_iff_le Valuation.Integers.dvd_iff_le

/- warning: valuation.integers.le_iff_dvd -> Valuation.Integers.le_iff_dvd is a dubious translation:
lean 3 declaration is
  forall {F : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : Field.{u1} F] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))], (Valuation.Integers.{u1, u2, u3} F Γ₀ (Field.toCommRing.{u1} F _inst_1) _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, Iff (LE.le.{u2} Γ₀ (Preorder.toLE.{u2} Γ₀ (PartialOrder.toPreorder.{u2} Γ₀ (OrderedCommMonoid.toPartialOrder.{u2} Γ₀ (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (fun (_x : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) => F -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (fun (_x : RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) => O -> F) (RingHom.hasCoeToFun.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) _inst_4) x)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (fun (_x : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) => F -> Γ₀) (Valuation.hasCoeToFun.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)) v (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (fun (_x : RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) => O -> F) (RingHom.hasCoeToFun.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) _inst_4) y))) (Dvd.Dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) y x))
but is expected to have type
  forall {F : Type.{u1}} {Γ₀ : Type.{u2}} [_inst_1 : Field.{u1} F] [_inst_2 : LinearOrderedCommGroupWithZero.{u2} Γ₀] {v : Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))} {O : Type.{u3}} [_inst_3 : CommRing.{u3} O] [_inst_4 : Algebra.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))], (Valuation.Integers.{u1, u2, u3} F Γ₀ (Field.toCommRing.{u1} F _inst_1) _inst_2 v O _inst_3 _inst_4) -> (forall {x : O} {y : O}, Iff (LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (OrderedCommMonoid.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (LinearOrderedCommMonoid.toOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (LinearOrderedCommMonoidWithZero.toLinearOrderedCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (a : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) a) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulOneClass.toMul.{u1} F (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (Valuation.instValuationClassValuation.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : F) => Γ₀) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulOneClass.toMul.{u1} F (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (MulOneClass.toMul.{u2} Γ₀ (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (MulZeroOneClass.toMulOneClass.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (MulZeroOneClass.toMulOneClass.{u2} Γ₀ (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (NonAssocSemiring.toMulZeroOneClass.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (MonoidWithZero.toMulZeroOneClass.{u2} Γ₀ (CommMonoidWithZero.toMonoidWithZero.{u2} Γ₀ (LinearOrderedCommMonoidWithZero.toCommMonoidWithZero.{u2} Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))) (ValuationClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (Valuation.{u1, u2} F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) F Γ₀ (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (Valuation.instValuationClassValuation.{u1, u2} F Γ₀ (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)) (LinearOrderedCommGroupWithZero.toLinearOrderedCommMonoidWithZero.{u2} Γ₀ _inst_2)))))) v (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O (fun (_x : O) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : O) => F) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonUnitalNonAssocSemiring.toMul.{u3} O (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} O (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RingHom.instRingHomClassRingHom.{u3, u1} O F (Semiring.toNonAssocSemiring.{u3} O (CommSemiring.toSemiring.{u3} O (CommRing.toCommSemiring.{u3} O _inst_3))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (algebraMap.{u3, u1} O F (CommRing.toCommSemiring.{u3} O _inst_3) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) _inst_4) y))) (Dvd.dvd.{u3} O (semigroupDvd.{u3} O (SemigroupWithZero.toSemigroup.{u3} O (NonUnitalSemiring.toSemigroupWithZero.{u3} O (NonUnitalRing.toNonUnitalSemiring.{u3} O (NonUnitalCommRing.toNonUnitalRing.{u3} O (CommRing.toNonUnitalCommRing.{u3} O _inst_3)))))) y x))
Case conversion may be inaccurate. Consider using '#align valuation.integers.le_iff_dvd Valuation.Integers.le_iff_dvdₓ'. -/
theorem le_iff_dvd {x y : O} : v (algebraMap O F x) ≤ v (algebraMap O F y) ↔ y ∣ x :=
  ⟨hv.dvd_of_le, hv.le_of_dvd⟩
#align valuation.integers.le_iff_dvd Valuation.Integers.le_iff_dvd

end Integers

end Field

end Valuation