algebra.order.absolute_valueMathlib.Algebra.Order.AbsoluteValue

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

chore(algebra/order/absolute_value): remove unneeded imports (#18978)

This is just a CI verification backport of https://github.com/leanprover-community/mathlib4/pull/3869. Feel free to either close or merge!

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -6,8 +6,6 @@ Authors: Mario Carneiro, Anne Baanen
 import algebra.group_with_zero.units.lemmas
 import algebra.order.field.defs
 import algebra.order.hom.basic
-import algebra.order.ring.abs
-import algebra.ring.commute
 import algebra.ring.regular
 
 /-!

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

refactor(topology/*): add uniform_space.of_fun, use it (#18495)
  • Fix simps config for absolute_value.
  • Define uniform_space.of_fun and use it for absolute_value.uniform_space, pseudo_emetric_space, and pseudo_metric_space.
  • Add filter.tendsto_infi_infi and filter.tendsto_supr_supr.
  • Rename pseudo_metric_space.of_metrizable and metric_space.of_metrizable to *.of_dist_topology.
  • Add metric.to_uniform_space_eq and metric.uniformity_basis_dist_rat.
  • Migrate topology.uniform_space.absolute_value to bundled absolute_value.
Diff
@@ -39,8 +39,6 @@ namespace absolute_value
 
 attribute [nolint doc_blame] absolute_value.to_mul_hom
 
-initialize_simps_projections absolute_value (to_mul_hom_to_fun → apply)
-
 section ordered_semiring
 
 section semiring
@@ -68,6 +66,11 @@ instance subadditive_hom_class : subadditive_hom_class (absolute_value R S) R S
 
 @[ext] lemma ext ⦃f g : absolute_value R S⦄ : (∀ x, f x = g x) → f = g := fun_like.ext _ _
 
+/-- See Note [custom simps projection]. -/
+def simps.apply (f : absolute_value R S) : R → S := f
+
+initialize_simps_projections absolute_value (to_mul_hom_to_fun → apply)
+
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
 instance : has_coe_to_fun (absolute_value R S) (λ f, R → S) := fun_like.has_coe_to_fun

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(algebra/order/absolute_value): Absolute values are multiplicative ring norms (#16919)

Generalise ..._seminorm_class to arbitrary codomains (rather than just ). Instantiate mul_ring_norm_class for absolute values.

Diff
@@ -175,6 +175,12 @@ by rw [← neg_sub, abv.map_neg]
 
 end ordered_comm_ring
 
+instance {R S : Type*} [ring R] [ordered_comm_ring S] [nontrivial R] [is_domain S] :
+  mul_ring_norm_class (absolute_value R S) R S :=
+{ map_neg_eq_map := λ f, f.map_neg,
+  eq_zero_of_map_eq_zero := λ f a, f.eq_zero.1,
+  ..absolute_value.subadditive_hom_class, ..absolute_value.monoid_with_zero_hom_class }
+
 section linear_ordered_ring
 
 variables {R S : Type*} [semiring R] [linear_ordered_ring S] (abv : absolute_value R S)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -341,10 +341,10 @@ end LinearOrderedCommRing
 end AbsoluteValue
 
 #print IsAbsoluteValue /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
 
Diff
@@ -85,7 +85,7 @@ theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h
 #print AbsoluteValue.ext /-
 @[ext]
 theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
-  FunLike.ext _ _
+  DFunLike.ext _ _
 #align absolute_value.ext AbsoluteValue.ext
 -/
 
@@ -101,7 +101,7 @@ initialize_simps_projections AbsoluteValue (to_mul_hom_to_fun → apply)
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
 instance : CoeFun (AbsoluteValue R S) fun f => R → S :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 #print AbsoluteValue.coe_toMulHom /-
 @[simp]
Diff
@@ -341,10 +341,10 @@ end LinearOrderedCommRing
 end AbsoluteValue
 
 #print IsAbsoluteValue /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
 
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
 -/
-import Mathbin.Algebra.GroupWithZero.Units.Lemmas
-import Mathbin.Algebra.Order.Field.Defs
-import Mathbin.Algebra.Order.Hom.Basic
-import Mathbin.Algebra.Ring.Regular
+import Algebra.GroupWithZero.Units.Lemmas
+import Algebra.Order.Field.Defs
+import Algebra.Order.Hom.Basic
+import Algebra.Ring.Regular
 
 #align_import algebra.order.absolute_value from "leanprover-community/mathlib"@"0013240bce820e3096cebb7ccf6d17e3f35f77ca"
 
@@ -341,10 +341,10 @@ end LinearOrderedCommRing
 end AbsoluteValue
 
 #print IsAbsoluteValue /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
 
Diff
@@ -59,7 +59,7 @@ instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S
 
 #print AbsoluteValue.mulHomClass /-
 instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
-  { AbsoluteValue.zeroHomClass with map_mul := fun f => f.map_mul' }
+  { AbsoluteValue.zeroHomClass with map_hMul := fun f => f.map_mul' }
 #align absolute_value.mul_hom_class AbsoluteValue.mulHomClass
 -/
 
@@ -373,7 +373,7 @@ instance AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteVal
   abv_nonneg := abv.NonNeg
   abv_eq_zero _ := abv.eq_zero
   abv_add := abv.add_le
-  abv_mul := abv.map_mul
+  abv_mul := abv.map_hMul
 #align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValue
 -/
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
-
-! This file was ported from Lean 3 source module algebra.order.absolute_value
-! leanprover-community/mathlib commit 0013240bce820e3096cebb7ccf6d17e3f35f77ca
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.GroupWithZero.Units.Lemmas
 import Mathbin.Algebra.Order.Field.Defs
 import Mathbin.Algebra.Order.Hom.Basic
 import Mathbin.Algebra.Ring.Regular
 
+#align_import algebra.order.absolute_value from "leanprover-community/mathlib"@"0013240bce820e3096cebb7ccf6d17e3f35f77ca"
+
 /-!
 # Absolute values
 
Diff
@@ -132,13 +132,11 @@ protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
 #align absolute_value.add_le AbsoluteValue.add_le
 -/
 
-/- warning: absolute_value.map_mul clashes with map_mul -> map_mul
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_mul map_mulₓ'. -/
-#print map_mul /-
+#print AbsoluteValue.map_mul /-
 @[simp]
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
   abv.map_mul' x y
-#align absolute_value.map_mul map_mul
+#align absolute_value.map_mul AbsoluteValue.map_mul
 -/
 
 #print AbsoluteValue.ne_zero_iff /-
@@ -172,13 +170,11 @@ theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
 #align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
 -/
 
-/- warning: absolute_value.map_zero clashes with map_zero -> map_zero
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_zero map_zeroₓ'. -/
-#print map_zero /-
+#print AbsoluteValue.map_zero /-
 @[simp]
 protected theorem map_zero : abv 0 = 0 :=
   abv.eq_zero.2 rfl
-#align absolute_value.map_zero map_zero
+#align absolute_value.map_zero AbsoluteValue.map_zero
 -/
 
 end Semiring
@@ -256,13 +252,11 @@ theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
 #align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom
 -/
 
-/- warning: absolute_value.map_pow clashes with map_pow -> map_pow
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_pow map_powₓ'. -/
-#print map_pow /-
+#print AbsoluteValue.map_pow /-
 @[simp]
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
   abv.toMonoidHom.map_pow a n
-#align absolute_value.map_pow map_pow
+#align absolute_value.map_pow AbsoluteValue.map_pow
 -/
 
 end IsDomain
Diff
@@ -51,34 +51,46 @@ section Semiring
 
 variable {R S : Type _} [Semiring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
+#print AbsoluteValue.zeroHomClass /-
 instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S
     where
   coe f := f.toFun
   coe_injective' f g h := by obtain ⟨⟨_, _⟩, _⟩ := f; obtain ⟨⟨_, _⟩, _⟩ := g; congr
   map_zero f := (f.eq_zero' _).2 rfl
 #align absolute_value.zero_hom_class AbsoluteValue.zeroHomClass
+-/
 
+#print AbsoluteValue.mulHomClass /-
 instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_mul := fun f => f.map_mul' }
 #align absolute_value.mul_hom_class AbsoluteValue.mulHomClass
+-/
 
+#print AbsoluteValue.nonnegHomClass /-
 instance nonnegHomClass : NonnegHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_nonneg := fun f => f.nonneg' }
 #align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClass
+-/
 
+#print AbsoluteValue.subadditiveHomClass /-
 instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_add_le_add := fun f => f.add_le' }
 #align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClass
+-/
 
+#print AbsoluteValue.coe_mk /-
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
   rfl
 #align absolute_value.coe_mk AbsoluteValue.coe_mk
+-/
 
+#print AbsoluteValue.ext /-
 @[ext]
 theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
   FunLike.ext _ _
 #align absolute_value.ext AbsoluteValue.ext
+-/
 
 #print AbsoluteValue.Simps.apply /-
 /-- See Note [custom simps projection]. -/
@@ -94,58 +106,80 @@ directly. -/
 instance : CoeFun (AbsoluteValue R S) fun f => R → S :=
   FunLike.hasCoeToFun
 
+#print AbsoluteValue.coe_toMulHom /-
 @[simp]
 theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
   rfl
 #align absolute_value.coe_to_mul_hom AbsoluteValue.coe_toMulHom
+-/
 
+#print AbsoluteValue.nonneg /-
 protected theorem nonneg (x : R) : 0 ≤ abv x :=
   abv.nonneg' x
 #align absolute_value.nonneg AbsoluteValue.nonneg
+-/
 
+#print AbsoluteValue.eq_zero /-
 @[simp]
 protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
   abv.eq_zero' x
 #align absolute_value.eq_zero AbsoluteValue.eq_zero
+-/
 
+#print AbsoluteValue.add_le /-
 protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
 #align absolute_value.add_le AbsoluteValue.add_le
+-/
 
 /- warning: absolute_value.map_mul clashes with map_mul -> map_mul
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_mul map_mulₓ'. -/
+#print map_mul /-
 @[simp]
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
   abv.map_mul' x y
 #align absolute_value.map_mul map_mul
+-/
 
+#print AbsoluteValue.ne_zero_iff /-
 protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
   abv.eq_zero.Not
 #align absolute_value.ne_zero_iff AbsoluteValue.ne_zero_iff
+-/
 
+#print AbsoluteValue.pos /-
 protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
   lt_of_le_of_ne (abv.NonNeg x) (Ne.symm <| mt abv.eq_zero.mp hx)
 #align absolute_value.pos AbsoluteValue.pos
+-/
 
+#print AbsoluteValue.pos_iff /-
 @[simp]
 protected theorem pos_iff {x : R} : 0 < abv x ↔ x ≠ 0 :=
   ⟨fun h₁ => mt abv.eq_zero.mpr h₁.ne', abv.Pos⟩
 #align absolute_value.pos_iff AbsoluteValue.pos_iff
+-/
 
+#print AbsoluteValue.ne_zero /-
 protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
   (abv.Pos hx).ne'
 #align absolute_value.ne_zero AbsoluteValue.ne_zero
+-/
 
+#print AbsoluteValue.map_one_of_isLeftRegular /-
 theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← abv.map_mul]
 #align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
+-/
 
 /- warning: absolute_value.map_zero clashes with map_zero -> map_zero
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_zero map_zeroₓ'. -/
+#print map_zero /-
 @[simp]
 protected theorem map_zero : abv 0 = 0 :=
   abv.eq_zero.2 rfl
 #align absolute_value.map_zero map_zero
+-/
 
 end Semiring
 
@@ -153,14 +187,18 @@ section Ring
 
 variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
+#print AbsoluteValue.sub_le /-
 protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
 #align absolute_value.sub_le AbsoluteValue.sub_le
+-/
 
+#print AbsoluteValue.map_sub_eq_zero_iff /-
 @[simp]
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
   abv.eq_zero.trans sub_eq_zero
 #align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iff
+-/
 
 end Ring
 
@@ -178,10 +216,12 @@ variable {R S : Type _} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 variable [IsDomain S] [Nontrivial R]
 
+#print AbsoluteValue.map_one /-
 @[simp]
 protected theorem map_one : abv 1 = 1 :=
   abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.NeZero one_ne_zero).left
 #align absolute_value.map_one AbsoluteValue.map_one
+-/
 
 instance : MonoidWithZeroHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.mulHomClass with
@@ -195,10 +235,12 @@ def toMonoidWithZeroHom : R →*₀ S :=
 #align absolute_value.to_monoid_with_zero_hom AbsoluteValue.toMonoidWithZeroHom
 -/
 
+#print AbsoluteValue.coe_toMonoidWithZeroHom /-
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
   rfl
 #align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHom
+-/
 
 #print AbsoluteValue.toMonoidHom /-
 /-- Absolute values from a nontrivial `R` to a linear ordered ring preserve `*` and `1`. -/
@@ -207,17 +249,21 @@ def toMonoidHom : R →* S :=
 #align absolute_value.to_monoid_hom AbsoluteValue.toMonoidHom
 -/
 
+#print AbsoluteValue.coe_toMonoidHom /-
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
   rfl
 #align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom
+-/
 
 /- warning: absolute_value.map_pow clashes with map_pow -> map_pow
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_pow map_powₓ'. -/
+#print map_pow /-
 @[simp]
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
   abv.toMonoidHom.map_pow a n
 #align absolute_value.map_pow map_pow
+-/
 
 end IsDomain
 
@@ -227,9 +273,11 @@ section Ring
 
 variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
+#print AbsoluteValue.le_sub /-
 protected theorem le_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   sub_le_iff_le_add.2 <| by simpa using abv.add_le (a - b) b
 #align absolute_value.le_sub AbsoluteValue.le_sub
+-/
 
 end Ring
 
@@ -241,6 +289,7 @@ variable {R S : Type _} [Ring R] [OrderedCommRing S] (abv : AbsoluteValue R S)
 
 variable [NoZeroDivisors S]
 
+#print AbsoluteValue.map_neg /-
 @[simp]
 protected theorem map_neg (a : R) : abv (-a) = abv a :=
   by
@@ -249,9 +298,12 @@ protected theorem map_neg (a : R) : abv (-a) = abv a :=
     (mul_self_eq_mul_self_iff.mp (by rw [← abv.map_mul, neg_mul_neg, abv.map_mul])).resolve_right _
   exact ((neg_lt_zero.mpr (abv.pos ha)).trans (abv.pos (neg_ne_zero.mpr ha))).ne'
 #align absolute_value.map_neg AbsoluteValue.map_neg
+-/
 
+#print AbsoluteValue.map_sub /-
 protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← neg_sub, abv.map_neg]
 #align absolute_value.map_sub AbsoluteValue.map_sub
+-/
 
 end OrderedCommRing
 
@@ -287,19 +339,21 @@ section LinearOrderedCommRing
 
 variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue R S)
 
+#print AbsoluteValue.abs_abv_sub_le_abv_sub /-
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub] <;> apply abv.le_sub⟩
 #align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_sub
+-/
 
 end LinearOrderedCommRing
 
 end AbsoluteValue
 
 #print IsAbsoluteValue /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
 
@@ -321,6 +375,7 @@ variable {S : Type _} [OrderedSemiring S]
 
 variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
+#print AbsoluteValue.isAbsoluteValue /-
 /-- A bundled absolute value is an absolute value. -/
 instance AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteValue abv
     where
@@ -329,6 +384,7 @@ instance AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteVal
   abv_add := abv.add_le
   abv_mul := abv.map_mul
 #align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValue
+-/
 
 #print IsAbsoluteValue.toAbsoluteValue /-
 /-- Convert an unbundled `is_absolute_value` to a bundled `absolute_value`. -/
@@ -342,13 +398,17 @@ def toAbsoluteValue : AbsoluteValue R S where
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
 -/
 
+#print IsAbsoluteValue.abv_zero /-
 theorem abv_zero : abv 0 = 0 :=
   (toAbsoluteValue abv).map_zero
 #align is_absolute_value.abv_zero IsAbsoluteValue.abv_zero
+-/
 
+#print IsAbsoluteValue.abv_pos /-
 theorem abv_pos {a : R} : 0 < abv a ↔ a ≠ 0 :=
   (toAbsoluteValue abv).pos_iff
 #align is_absolute_value.abv_pos IsAbsoluteValue.abv_pos
+-/
 
 end OrderedSemiring
 
@@ -356,9 +416,11 @@ section LinearOrderedRing
 
 variable {S : Type _} [LinearOrderedRing S]
 
+#print IsAbsoluteValue.abs_isAbsoluteValue /-
 instance abs_isAbsoluteValue : IsAbsoluteValue (abs : S → S) :=
   AbsoluteValue.abs.IsAbsoluteValue
 #align is_absolute_value.abs_is_absolute_value IsAbsoluteValue.abs_isAbsoluteValue
+-/
 
 end LinearOrderedRing
 
@@ -372,9 +434,11 @@ variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [IsDomain S]
 
+#print IsAbsoluteValue.abv_one /-
 theorem abv_one [Nontrivial R] : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one
 #align is_absolute_value.abv_one IsAbsoluteValue.abv_one
+-/
 
 #print IsAbsoluteValue.abvHom /-
 /-- `abv` as a `monoid_with_zero_hom`. -/
@@ -383,10 +447,12 @@ def abvHom [Nontrivial R] : R →*₀ S :=
 #align is_absolute_value.abv_hom IsAbsoluteValue.abvHom
 -/
 
+#print IsAbsoluteValue.abv_pow /-
 theorem abv_pow [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv] (a : R) (n : ℕ) :
     abv (a ^ n) = abv a ^ n :=
   (toAbsoluteValue abv).map_pow a n
 #align is_absolute_value.abv_pow IsAbsoluteValue.abv_pow
+-/
 
 end Semiring
 
@@ -394,13 +460,17 @@ section Ring
 
 variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
+#print IsAbsoluteValue.abv_sub_le /-
 theorem abv_sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv_add abv (a - b) (b - c)
 #align is_absolute_value.abv_sub_le IsAbsoluteValue.abv_sub_le
+-/
 
+#print IsAbsoluteValue.sub_abv_le_abv_sub /-
 theorem sub_abv_le_abv_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   (toAbsoluteValue abv).le_sub a b
 #align is_absolute_value.sub_abv_le_abv_sub IsAbsoluteValue.sub_abv_le_abv_sub
+-/
 
 end Ring
 
@@ -416,13 +486,17 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [NoZeroDivisors S]
 
+#print IsAbsoluteValue.abv_neg /-
 theorem abv_neg (a : R) : abv (-a) = abv a :=
   (toAbsoluteValue abv).map_neg a
 #align is_absolute_value.abv_neg IsAbsoluteValue.abv_neg
+-/
 
+#print IsAbsoluteValue.abv_sub /-
 theorem abv_sub (a b : R) : abv (a - b) = abv (b - a) :=
   (toAbsoluteValue abv).map_sub a b
 #align is_absolute_value.abv_sub IsAbsoluteValue.abv_sub
+-/
 
 end Ring
 
@@ -436,9 +510,11 @@ section Ring
 
 variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
+#print IsAbsoluteValue.abs_abv_sub_le_abv_sub /-
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   (toAbsoluteValue abv).abs_abv_sub_le_abv_sub a b
 #align is_absolute_value.abs_abv_sub_le_abv_sub IsAbsoluteValue.abs_abv_sub_le_abv_sub
+-/
 
 end Ring
 
@@ -452,10 +528,12 @@ section Semiring
 
 variable {R : Type _} [Semiring R] [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv]
 
+#print IsAbsoluteValue.abv_one' /-
 theorem abv_one' : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one_of_isLeftRegular <|
     (isRegular_of_ne_zero <| (toAbsoluteValue abv).NeZero one_ne_zero).left
 #align is_absolute_value.abv_one' IsAbsoluteValue.abv_one'
+-/
 
 #print IsAbsoluteValue.abvHom' /-
 /-- An absolute value as a monoid with zero homomorphism, assuming the target is a semifield. -/
@@ -470,13 +548,17 @@ section DivisionSemiring
 
 variable {R : Type _} [DivisionSemiring R] (abv : R → S) [IsAbsoluteValue abv]
 
+#print IsAbsoluteValue.abv_inv /-
 theorem abv_inv (a : R) : abv a⁻¹ = (abv a)⁻¹ :=
   map_inv₀ (abvHom' abv) a
 #align is_absolute_value.abv_inv IsAbsoluteValue.abv_inv
+-/
 
+#print IsAbsoluteValue.abv_div /-
 theorem abv_div (a b : R) : abv (a / b) = abv a / abv b :=
   map_div₀ (abvHom' abv) a b
 #align is_absolute_value.abv_div IsAbsoluteValue.abv_div
+-/
 
 end DivisionSemiring
 
Diff
@@ -296,10 +296,10 @@ end LinearOrderedCommRing
 end AbsoluteValue
 
 #print IsAbsoluteValue /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
 
Diff
@@ -51,12 +51,6 @@ section Semiring
 
 variable {R S : Type _} [Semiring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
-/- warning: absolute_value.zero_hom_class -> AbsoluteValue.zeroHomClass is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], ZeroHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], ZeroHomClass.{max u2 u1, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))
-Case conversion may be inaccurate. Consider using '#align absolute_value.zero_hom_class AbsoluteValue.zeroHomClassₓ'. -/
 instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S
     where
   coe f := f.toFun
@@ -64,50 +58,23 @@ instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S
   map_zero f := (f.eq_zero' _).2 rfl
 #align absolute_value.zero_hom_class AbsoluteValue.zeroHomClass
 
-/- warning: absolute_value.mul_hom_class -> AbsoluteValue.mulHomClass is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], MulHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], MulHomClass.{max u2 u1, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.mul_hom_class AbsoluteValue.mulHomClassₓ'. -/
 instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_mul := fun f => f.map_mul' }
 #align absolute_value.mul_hom_class AbsoluteValue.mulHomClass
 
-/- warning: absolute_value.nonneg_hom_class -> AbsoluteValue.nonnegHomClass is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], NonnegHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], NonnegHomClass.{max u2 u1, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2)))
-Case conversion may be inaccurate. Consider using '#align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClassₓ'. -/
 instance nonnegHomClass : NonnegHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_nonneg := fun f => f.nonneg' }
 #align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClass
 
-/- warning: absolute_value.subadditive_hom_class -> AbsoluteValue.subadditiveHomClass is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], SubadditiveHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], SubadditiveHomClass.{max u2 u1, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2)))
-Case conversion may be inaccurate. Consider using '#align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClassₓ'. -/
 instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_add_le_add := fun f => f.add_le' }
 #align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClass
 
-/- warning: absolute_value.coe_mk -> AbsoluteValue.coe_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
   rfl
 #align absolute_value.coe_mk AbsoluteValue.coe_mk
 
-/- warning: absolute_value.ext -> AbsoluteValue.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] {{f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) f x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) g x)) -> (Eq.{max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) f g)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] {{f : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) f g)
-Case conversion may be inaccurate. Consider using '#align absolute_value.ext AbsoluteValue.extₓ'. -/
 @[ext]
 theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
   FunLike.ext _ _
@@ -127,117 +94,53 @@ directly. -/
 instance : CoeFun (AbsoluteValue R S) fun f => R → S :=
   FunLike.hasCoeToFun
 
-/- warning: absolute_value.coe_to_mul_hom -> AbsoluteValue.coe_toMulHom is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (AbsoluteValue.toMulHom.{u1, u2} R S _inst_1 _inst_2 abv)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (AbsoluteValue.toMulHom.{u2, u1} R S _inst_1 _inst_2 abv) (MulHomClass.toMulHom.{u2, u1, max u2 u1} R S (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (AbsoluteValue.mulHomClass.{u2, u1} R S _inst_1 _inst_2) abv)
-Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_mul_hom AbsoluteValue.coe_toMulHomₓ'. -/
 @[simp]
 theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
   rfl
 #align absolute_value.coe_to_mul_hom AbsoluteValue.coe_toMulHom
 
-/- warning: absolute_value.nonneg -> AbsoluteValue.nonneg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)
-Case conversion may be inaccurate. Consider using '#align absolute_value.nonneg AbsoluteValue.nonnegₓ'. -/
 protected theorem nonneg (x : R) : 0 ≤ abv x :=
   abv.nonneg' x
 #align absolute_value.nonneg AbsoluteValue.nonneg
 
-/- warning: absolute_value.eq_zero -> AbsoluteValue.eq_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.eq_zero AbsoluteValue.eq_zeroₓ'. -/
 @[simp]
 protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
   abv.eq_zero' x
 #align absolute_value.eq_zero AbsoluteValue.eq_zero
 
-/- warning: absolute_value.add_le -> AbsoluteValue.add_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv y))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv y))
-Case conversion may be inaccurate. Consider using '#align absolute_value.add_le AbsoluteValue.add_leₓ'. -/
 protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
 #align absolute_value.add_le AbsoluteValue.add_le
 
 /- warning: absolute_value.map_mul clashes with map_mul -> map_mul
-warning: absolute_value.map_mul -> map_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (x : R) (y : R), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (HMul.hMul.{u_1, u_1, u_1} R R R (instHMul.{u_1} R (Distrib.toHasMul.{u_1} R (NonUnitalNonAssocSemiring.toDistrib.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1))))) x y)) (HMul.hMul.{u_2, u_2, u_2} S S S (instHMul.{u_2} S (Distrib.toHasMul.{u_2} S (NonUnitalNonAssocSemiring.toDistrib.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2)))))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv y))
-but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_mul map_mulₓ'. -/
 @[simp]
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
   abv.map_mul' x y
 #align absolute_value.map_mul map_mul
 
-/- warning: absolute_value.ne_zero_iff -> AbsoluteValue.ne_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.ne_zero_iff AbsoluteValue.ne_zero_iffₓ'. -/
 protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
   abv.eq_zero.Not
 #align absolute_value.ne_zero_iff AbsoluteValue.ne_zero_iff
 
-/- warning: absolute_value.pos -> AbsoluteValue.pos is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (LT.lt.{u2} S (Preorder.toHasLt.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (LT.lt.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLT.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x))
-Case conversion may be inaccurate. Consider using '#align absolute_value.pos AbsoluteValue.posₓ'. -/
 protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
   lt_of_le_of_ne (abv.NonNeg x) (Ne.symm <| mt abv.eq_zero.mp hx)
 #align absolute_value.pos AbsoluteValue.pos
 
-/- warning: absolute_value.pos_iff -> AbsoluteValue.pos_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} S (Preorder.toHasLt.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLT.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.pos_iff AbsoluteValue.pos_iffₓ'. -/
 @[simp]
 protected theorem pos_iff {x : R} : 0 < abv x ↔ x ≠ 0 :=
   ⟨fun h₁ => mt abv.eq_zero.mpr h₁.ne', abv.Pos⟩
 #align absolute_value.pos_iff AbsoluteValue.pos_iff
 
-/- warning: absolute_value.ne_zero -> AbsoluteValue.ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (Ne.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.ne_zero AbsoluteValue.ne_zeroₓ'. -/
 protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
   (abv.Pos hx).ne'
 #align absolute_value.ne_zero AbsoluteValue.ne_zero
 
-/- warning: absolute_value.map_one_of_is_regular -> AbsoluteValue.map_one_of_isLeftRegular is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} S (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} S (NonAssocSemiring.toAddCommMonoidWithOne.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegularₓ'. -/
 theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← abv.map_mul]
 #align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
 
 /- warning: absolute_value.map_zero clashes with map_zero -> map_zero
-warning: absolute_value.map_zero -> map_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u_1} R 0 (OfNat.mk.{u_1} R 0 (Zero.zero.{u_1} R (MulZeroClass.toHasZero.{u_1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)))))))) (OfNat.ofNat.{u_2} S 0 (OfNat.mk.{u_2} S 0 (Zero.zero.{u_2} S (MulZeroClass.toHasZero.{u_2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2))))))))
-but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1366 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1366) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_zero map_zeroₓ'. -/
 @[simp]
 protected theorem map_zero : abv 0 = 0 :=
@@ -250,22 +153,10 @@ section Ring
 
 variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
-/- warning: absolute_value.sub_le -> AbsoluteValue.sub_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) b c)))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
-Case conversion may be inaccurate. Consider using '#align absolute_value.sub_le AbsoluteValue.sub_leₓ'. -/
 protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
 #align absolute_value.sub_le AbsoluteValue.sub_le
 
-/- warning: absolute_value.map_sub_eq_zero_iff -> AbsoluteValue.map_sub_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R a b)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (Eq.{succ u1} R a b)
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iffₓ'. -/
 @[simp]
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
   abv.eq_zero.trans sub_eq_zero
@@ -287,12 +178,6 @@ variable {R S : Type _} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 variable [IsDomain S] [Nontrivial R]
 
-/- warning: absolute_value.map_one -> AbsoluteValue.map_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toOrderedSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_one AbsoluteValue.map_oneₓ'. -/
 @[simp]
 protected theorem map_one : abv 1 = 1 :=
   abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.NeZero one_ne_zero).left
@@ -310,12 +195,6 @@ def toMonoidWithZeroHom : R →*₀ S :=
 #align absolute_value.to_monoid_with_zero_hom AbsoluteValue.toMonoidWithZeroHom
 -/
 
-/- warning: absolute_value.coe_to_monoid_with_zero_hom -> AbsoluteValue.coe_toMonoidWithZeroHom is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (fun (_x : MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) => R -> S) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (AbsoluteValue.toMonoidWithZeroHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
-Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHomₓ'. -/
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
   rfl
@@ -328,23 +207,12 @@ def toMonoidHom : R →* S :=
 #align absolute_value.to_monoid_hom AbsoluteValue.toMonoidHom
 -/
 
-/- warning: absolute_value.coe_to_monoid_hom -> AbsoluteValue.coe_toMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (fun (_x : MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) => R -> S) (MonoidHom.hasCoeToFun.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (AbsoluteValue.toMonoidHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
-Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHomₓ'. -/
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
   rfl
 #align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom
 
 /- warning: absolute_value.map_pow clashes with map_pow -> map_pow
-warning: absolute_value.map_pow -> map_pow is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedRing.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) [_inst_3 : IsDomain.{u_2} S (Ring.toSemiring.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2))] [_inst_4 : Nontrivial.{u_1} R] (a : R) (n : Nat), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)))) a n)) (HPow.hPow.{u_2, 0, u_2} S Nat S (instHPow.{u_2, 0} S Nat (Monoid.Pow.{u_2} S (Ring.toMonoid.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2)))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv a) n)
-but is expected to have type
-  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_pow map_powₓ'. -/
 @[simp]
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
@@ -359,12 +227,6 @@ section Ring
 
 variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
-/- warning: absolute_value.le_sub -> AbsoluteValue.le_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
-Case conversion may be inaccurate. Consider using '#align absolute_value.le_sub AbsoluteValue.le_subₓ'. -/
 protected theorem le_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   sub_le_iff_le_add.2 <| by simpa using abv.add_le (a - b) b
 #align absolute_value.le_sub AbsoluteValue.le_sub
@@ -379,12 +241,6 @@ variable {R S : Type _} [Ring R] [OrderedCommRing S] (abv : AbsoluteValue R S)
 
 variable [NoZeroDivisors S]
 
-/- warning: absolute_value.map_neg -> AbsoluteValue.map_neg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1))))) a)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv a)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv a)
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_neg AbsoluteValue.map_negₓ'. -/
 @[simp]
 protected theorem map_neg (a : R) : abv (-a) = abv a :=
   by
@@ -394,12 +250,6 @@ protected theorem map_neg (a : R) : abv (-a) = abv a :=
   exact ((neg_lt_zero.mpr (abv.pos ha)).trans (abv.pos (neg_ne_zero.mpr ha))).ne'
 #align absolute_value.map_neg AbsoluteValue.map_neg
 
-/- warning: absolute_value.map_sub -> AbsoluteValue.map_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R) (b : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) b a))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R) (b : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b a))
-Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub AbsoluteValue.map_subₓ'. -/
 protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← neg_sub, abv.map_neg]
 #align absolute_value.map_sub AbsoluteValue.map_sub
 
@@ -437,9 +287,6 @@ section LinearOrderedCommRing
 
 variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue R S)
 
-/- warning: absolute_value.abs_abv_sub_le_abv_sub -> AbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub] <;> apply abv.le_sub⟩
 #align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_sub
@@ -474,12 +321,6 @@ variable {S : Type _} [OrderedSemiring S]
 
 variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
-/- warning: absolute_value.is_absolute_value -> AbsoluteValue.isAbsoluteValue is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) (fun (f : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) => R -> S) (AbsoluteValue.hasCoeToFun.{u2, u1} R S _inst_2 _inst_1) abv)
-but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_1))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_2 _inst_1)) abv)
-Case conversion may be inaccurate. Consider using '#align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValueₓ'. -/
 /-- A bundled absolute value is an absolute value. -/
 instance AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteValue abv
     where
@@ -501,22 +342,10 @@ def toAbsoluteValue : AbsoluteValue R S where
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
 -/
 
-/- warning: is_absolute_value.abv_zero -> IsAbsoluteValue.abv_zero is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 abv], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 0 (OfNat.mk.{u1} S 0 (Zero.zero.{u1} S (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1))))))))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : OrderedSemiring.{u2} S] {R : Type.{u1}} [_inst_2 : Semiring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S _inst_1 R _inst_2 abv], Eq.{succ u2} S (abv (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2))))) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_zero IsAbsoluteValue.abv_zeroₓ'. -/
 theorem abv_zero : abv 0 = 0 :=
   (toAbsoluteValue abv).map_zero
 #align is_absolute_value.abv_zero IsAbsoluteValue.abv_zero
 
-/- warning: is_absolute_value.abv_pos -> IsAbsoluteValue.abv_pos is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 abv] {a : R}, Iff (LT.lt.{u1} S (Preorder.toHasLt.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommMonoid.toPartialOrder.{u1} S (OrderedSemiring.toOrderedAddCommMonoid.{u1} S _inst_1)))) (OfNat.ofNat.{u1} S 0 (OfNat.mk.{u1} S 0 (Zero.zero.{u1} S (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1)))))))) (abv a)) (Ne.{succ u2} R a (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2))))))))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : OrderedSemiring.{u2} S] {R : Type.{u1}} [_inst_2 : Semiring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S _inst_1 R _inst_2 abv] {a : R}, Iff (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_1))) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_1))))) (abv a)) (Ne.{succ u1} R a (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_pos IsAbsoluteValue.abv_posₓ'. -/
 theorem abv_pos {a : R} : 0 < abv a ↔ a ≠ 0 :=
   (toAbsoluteValue abv).pos_iff
 #align is_absolute_value.abv_pos IsAbsoluteValue.abv_pos
@@ -527,12 +356,6 @@ section LinearOrderedRing
 
 variable {S : Type _} [LinearOrderedRing S]
 
-/- warning: is_absolute_value.abs_is_absolute_value -> IsAbsoluteValue.abs_isAbsoluteValue is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) S (Ring.toSemiring.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1))))))
-but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) S (StrictOrderedSemiring.toSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (Ring.toNeg.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (SemilatticeSup.toSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (DistribLattice.toLattice.{u1} S (instDistribLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_is_absolute_value IsAbsoluteValue.abs_isAbsoluteValueₓ'. -/
 instance abs_isAbsoluteValue : IsAbsoluteValue (abs : S → S) :=
   AbsoluteValue.abs.IsAbsoluteValue
 #align is_absolute_value.abs_is_absolute_value IsAbsoluteValue.abs_isAbsoluteValue
@@ -549,12 +372,6 @@ variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [IsDomain S]
 
-/- warning: is_absolute_value.abv_one -> IsAbsoluteValue.abv_one is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (OrderedRing.toRing.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 1 (OfNat.mk.{u1} S 1 (One.one.{u1} S (AddMonoidWithOne.toOne.{u1} S (AddGroupWithOne.toAddMonoidWithOne.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))))
-but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_2)))) (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (Semiring.toOne.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_one IsAbsoluteValue.abv_oneₓ'. -/
 theorem abv_one [Nontrivial R] : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one
 #align is_absolute_value.abv_one IsAbsoluteValue.abv_one
@@ -566,12 +383,6 @@ def abvHom [Nontrivial R] : R →*₀ S :=
 #align is_absolute_value.abv_hom IsAbsoluteValue.abvHom
 -/
 
-/- warning: is_absolute_value.abv_pow -> IsAbsoluteValue.abv_pow is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] [_inst_4 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (OrderedRing.toRing.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R] (abv : R -> S) [_inst_6 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] (a : R) (n : Nat), Eq.{succ u1} S (abv (HPow.hPow.{u2, 0, u2} R Nat R (instHPow.{u2, 0} R Nat (Monoid.Pow.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) a n)) (HPow.hPow.{u1, 0, u1} S Nat S (instHPow.{u1, 0} S Nat (Monoid.Pow.{u1} S (Ring.toMonoid.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))) (abv a) n)
-but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] [_inst_4 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R] (abv : R -> S) [_inst_6 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] (a : R) (n : Nat), Eq.{succ u1} S (abv (HPow.hPow.{u2, 0, u2} R Nat R (instHPow.{u2, 0} R Nat (Monoid.Pow.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) a n)) (HPow.hPow.{u1, 0, u1} S Nat S (instHPow.{u1, 0} S Nat (Monoid.Pow.{u1} S (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1)))))) (abv a) n)
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_pow IsAbsoluteValue.abv_powₓ'. -/
 theorem abv_pow [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv] (a : R) (n : ℕ) :
     abv (a ^ n) = abv a ^ n :=
   (toAbsoluteValue abv).map_pow a n
@@ -583,22 +394,10 @@ section Ring
 
 variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
-/- warning: is_absolute_value.abv_sub_le -> IsAbsoluteValue.abv_sub_le is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u1} S (Preorder.toHasLe.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a c)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toHasAdd.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) b c)))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : OrderedRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedRing.toOrderedSemiring.{u2} S _inst_1) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedRing.toPartialOrder.{u2} S _inst_1))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_1))))))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) b c)))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_sub_le IsAbsoluteValue.abv_sub_leₓ'. -/
 theorem abv_sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv_add abv (a - b) (b - c)
 #align is_absolute_value.abv_sub_le IsAbsoluteValue.abv_sub_le
 
-/- warning: is_absolute_value.sub_abv_le_abv_sub -> IsAbsoluteValue.sub_abv_le_abv_sub is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toHasLe.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))) (abv a) (abv b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : OrderedRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedRing.toOrderedSemiring.{u2} S _inst_1) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedRing.toPartialOrder.{u2} S _inst_1))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (OrderedRing.toRing.{u2} S _inst_1))) (abv a) (abv b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.sub_abv_le_abv_sub IsAbsoluteValue.sub_abv_le_abv_subₓ'. -/
 theorem sub_abv_le_abv_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   (toAbsoluteValue abv).le_sub a b
 #align is_absolute_value.sub_abv_le_abv_sub IsAbsoluteValue.sub_abv_le_abv_sub
@@ -617,22 +416,10 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [NoZeroDivisors S]
 
-/- warning: is_absolute_value.abv_neg -> IsAbsoluteValue.abv_neg is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)) R (Ring.toSemiring.{u2} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u1} S (Distrib.toHasMul.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))) (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))))))] (a : R), Eq.{succ u1} S (abv (Neg.neg.{u2} R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2))))) a)) (abv a)
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : OrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1)) R (Ring.toSemiring.{u1} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_1))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1))))] (a : R), Eq.{succ u2} S (abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_2) a)) (abv a)
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_neg IsAbsoluteValue.abv_negₓ'. -/
 theorem abv_neg (a : R) : abv (-a) = abv a :=
   (toAbsoluteValue abv).map_neg a
 #align is_absolute_value.abv_neg IsAbsoluteValue.abv_neg
 
-/- warning: is_absolute_value.abv_sub -> IsAbsoluteValue.abv_sub is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)) R (Ring.toSemiring.{u2} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u1} S (Distrib.toHasMul.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))) (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))))))] (a : R) (b : R), Eq.{succ u1} S (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) b a))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : OrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1)) R (Ring.toSemiring.{u1} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_1))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1))))] (a : R) (b : R), Eq.{succ u2} S (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) b a))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_sub IsAbsoluteValue.abv_subₓ'. -/
 theorem abv_sub (a b : R) : abv (a - b) = abv (b - a) :=
   (toAbsoluteValue abv).map_sub a b
 #align is_absolute_value.abv_sub IsAbsoluteValue.abv_sub
@@ -649,12 +436,6 @@ section Ring
 
 variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
-/- warning: is_absolute_value.abs_abv_sub_le_abv_sub -> IsAbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toHasLe.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (StrictOrderedRing.toOrderedAddCommGroup.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1))))))))) (abv a) (abv b))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (StrictOrderedRing.toPartialOrder.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (Ring.toNeg.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1)))) (SemilatticeSup.toSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (DistribLattice.toLattice.{u2} S (instDistribLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (abv a) (abv b))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_abv_sub_le_abv_sub IsAbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   (toAbsoluteValue abv).abs_abv_sub_le_abv_sub a b
 #align is_absolute_value.abs_abv_sub_le_abv_sub IsAbsoluteValue.abs_abv_sub_le_abv_sub
@@ -671,12 +452,6 @@ section Semiring
 
 variable {R : Type _} [Semiring R] [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv]
 
-/- warning: is_absolute_value.abv_one' -> IsAbsoluteValue.abv_one' is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] [_inst_3 : Nontrivial.{u2} R] (abv : R -> S) [_inst_4 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} S _inst_1)))) R _inst_2 abv], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 1 (OfNat.mk.{u1} S 1 (One.one.{u1} S (AddMonoidWithOne.toOne.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S (StrictOrderedSemiring.toSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} S _inst_1)))))))))))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} S] {R : Type.{u1}} [_inst_2 : Semiring.{u1} R] [_inst_3 : Nontrivial.{u1} R] (abv : R -> S) [_inst_4 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R _inst_2 abv], Eq.{succ u2} S (abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_2)))) (OfNat.ofNat.{u2} S 1 (One.toOfNat1.{u2} S (Semiring.toOne.{u2} S (StrictOrderedSemiring.toSemiring.{u2} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} S (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} S _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_one' IsAbsoluteValue.abv_one'ₓ'. -/
 theorem abv_one' : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one_of_isLeftRegular <|
     (isRegular_of_ne_zero <| (toAbsoluteValue abv).NeZero one_ne_zero).left
@@ -695,22 +470,10 @@ section DivisionSemiring
 
 variable {R : Type _} [DivisionSemiring R] (abv : R → S) [IsAbsoluteValue abv]
 
-/- warning: is_absolute_value.abv_inv -> IsAbsoluteValue.abv_inv is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u1} S] {R : Type.{u2}} [_inst_2 : DivisionSemiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} S _inst_1)))) R (DivisionSemiring.toSemiring.{u2} R _inst_2) abv] (a : R), Eq.{succ u1} S (abv (Inv.inv.{u2} R (DivInvMonoid.toHasInv.{u2} R (GroupWithZero.toDivInvMonoid.{u2} R (DivisionSemiring.toGroupWithZero.{u2} R _inst_2))) a)) (Inv.inv.{u1} S (DivInvMonoid.toHasInv.{u1} S (GroupWithZero.toDivInvMonoid.{u1} S (DivisionSemiring.toGroupWithZero.{u1} S (Semifield.toDivisionSemiring.{u1} S (LinearOrderedSemifield.toSemifield.{u1} S _inst_1))))) (abv a))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} S] {R : Type.{u1}} [_inst_2 : DivisionSemiring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (DivisionSemiring.toSemiring.{u1} R _inst_2) abv] (a : R), Eq.{succ u2} S (abv (Inv.inv.{u1} R (DivisionSemiring.toInv.{u1} R _inst_2) a)) (Inv.inv.{u2} S (LinearOrderedSemifield.toInv.{u2} S _inst_1) (abv a))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_inv IsAbsoluteValue.abv_invₓ'. -/
 theorem abv_inv (a : R) : abv a⁻¹ = (abv a)⁻¹ :=
   map_inv₀ (abvHom' abv) a
 #align is_absolute_value.abv_inv IsAbsoluteValue.abv_inv
 
-/- warning: is_absolute_value.abv_div -> IsAbsoluteValue.abv_div is a dubious translation:
-lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u1} S] {R : Type.{u2}} [_inst_2 : DivisionSemiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} S _inst_1)))) R (DivisionSemiring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), Eq.{succ u1} S (abv (HDiv.hDiv.{u2, u2, u2} R R R (instHDiv.{u2} R (DivInvMonoid.toHasDiv.{u2} R (GroupWithZero.toDivInvMonoid.{u2} R (DivisionSemiring.toGroupWithZero.{u2} R _inst_2)))) a b)) (HDiv.hDiv.{u1, u1, u1} S S S (instHDiv.{u1} S (DivInvMonoid.toHasDiv.{u1} S (GroupWithZero.toDivInvMonoid.{u1} S (DivisionSemiring.toGroupWithZero.{u1} S (Semifield.toDivisionSemiring.{u1} S (LinearOrderedSemifield.toSemifield.{u1} S _inst_1)))))) (abv a) (abv b))
-but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} S] {R : Type.{u1}} [_inst_2 : DivisionSemiring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (DivisionSemiring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), Eq.{succ u2} S (abv (HDiv.hDiv.{u1, u1, u1} R R R (instHDiv.{u1} R (DivisionSemiring.toDiv.{u1} R _inst_2)) a b)) (HDiv.hDiv.{u2, u2, u2} S S S (instHDiv.{u2} S (LinearOrderedSemifield.toDiv.{u2} S _inst_1)) (abv a) (abv b))
-Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_div IsAbsoluteValue.abv_divₓ'. -/
 theorem abv_div (a b : R) : abv (a / b) = abv a / abv b :=
   map_div₀ (abvHom' abv) a b
 #align is_absolute_value.abv_div IsAbsoluteValue.abv_div
Diff
@@ -60,10 +60,7 @@ Case conversion may be inaccurate. Consider using '#align absolute_value.zero_ho
 instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S
     where
   coe f := f.toFun
-  coe_injective' f g h := by
-    obtain ⟨⟨_, _⟩, _⟩ := f
-    obtain ⟨⟨_, _⟩, _⟩ := g
-    congr
+  coe_injective' f g h := by obtain ⟨⟨_, _⟩, _⟩ := f; obtain ⟨⟨_, _⟩, _⟩ := g; congr
   map_zero f := (f.eq_zero' _).2 rfl
 #align absolute_value.zero_hom_class AbsoluteValue.zeroHomClass
 
Diff
@@ -98,10 +98,7 @@ instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
 #align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClass
 
 /- warning: absolute_value.coe_mk -> AbsoluteValue.coe_mk is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
@@ -444,10 +441,7 @@ section LinearOrderedCommRing
 variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue R S)
 
 /- warning: absolute_value.abs_abv_sub_le_abv_sub -> AbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2)))) (SemilatticeSup.toSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
+<too large>
 Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub] <;> apply abv.le_sub⟩
Diff
@@ -101,7 +101,7 @@ instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
@@ -180,7 +180,7 @@ warning: absolute_value.map_mul -> map_mul is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (x : R) (y : R), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (HMul.hMul.{u_1, u_1, u_1} R R R (instHMul.{u_1} R (Distrib.toHasMul.{u_1} R (NonUnitalNonAssocSemiring.toDistrib.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1))))) x y)) (HMul.hMul.{u_2, u_2, u_2} S S S (instHMul.{u_2} S (Distrib.toHasMul.{u_2} S (NonUnitalNonAssocSemiring.toDistrib.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2)))))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv y))
 but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
+  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_mul map_mulₓ'. -/
 @[simp]
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
@@ -243,7 +243,7 @@ warning: absolute_value.map_zero -> map_zero is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u_1} R 0 (OfNat.mk.{u_1} R 0 (Zero.zero.{u_1} R (MulZeroClass.toHasZero.{u_1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)))))))) (OfNat.ofNat.{u_2} S 0 (OfNat.mk.{u_2} S 0 (Zero.zero.{u_2} S (MulZeroClass.toHasZero.{u_2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1363 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1363) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
+  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1366 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1366) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_zero map_zeroₓ'. -/
 @[simp]
 protected theorem map_zero : abv 0 = 0 :=
@@ -320,7 +320,7 @@ def toMonoidWithZeroHom : R →*₀ S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (fun (_x : MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) => R -> S) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (AbsoluteValue.toMonoidWithZeroHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHomₓ'. -/
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
@@ -338,7 +338,7 @@ def toMonoidHom : R →* S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (fun (_x : MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) => R -> S) (MonoidHom.hasCoeToFun.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (AbsoluteValue.toMonoidHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHomₓ'. -/
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
@@ -350,7 +350,7 @@ warning: absolute_value.map_pow -> map_pow is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedRing.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) [_inst_3 : IsDomain.{u_2} S (Ring.toSemiring.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2))] [_inst_4 : Nontrivial.{u_1} R] (a : R) (n : Nat), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)))) a n)) (HPow.hPow.{u_2, 0, u_2} S Nat S (instHPow.{u_2, 0} S Nat (Monoid.Pow.{u_2} S (Ring.toMonoid.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2)))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv a) n)
 but is expected to have type
-  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
+  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_pow map_powₓ'. -/
 @[simp]
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
Diff
@@ -79,7 +79,7 @@ instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
 
 /- warning: absolute_value.nonneg_hom_class -> AbsoluteValue.nonnegHomClass is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], NonnegHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], NonnegHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2))))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], NonnegHomClass.{max u2 u1, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2)))
 Case conversion may be inaccurate. Consider using '#align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClassₓ'. -/
@@ -89,7 +89,7 @@ instance nonnegHomClass : NonnegHomClass (AbsoluteValue R S) R S :=
 
 /- warning: absolute_value.subadditive_hom_class -> AbsoluteValue.subadditiveHomClass is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], SubadditiveHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], SubadditiveHomClass.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2))))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S], SubadditiveHomClass.{max u2 u1, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2)))
 Case conversion may be inaccurate. Consider using '#align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClassₓ'. -/
@@ -99,7 +99,7 @@ instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
 
 /- warning: absolute_value.coe_mk -> AbsoluteValue.coe_mk is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
 but is expected to have type
   forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
@@ -110,7 +110,7 @@ theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h
 
 /- warning: absolute_value.ext -> AbsoluteValue.ext is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] {{f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) f x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) g x)) -> (Eq.{max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) f g)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] {{f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) f x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) g x)) -> (Eq.{max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) f g)
 but is expected to have type
   forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] {{f : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) f g)
 Case conversion may be inaccurate. Consider using '#align absolute_value.ext AbsoluteValue.extₓ'. -/
@@ -146,7 +146,7 @@ theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
 
 /- warning: absolute_value.nonneg -> AbsoluteValue.nonneg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)
 Case conversion may be inaccurate. Consider using '#align absolute_value.nonneg AbsoluteValue.nonnegₓ'. -/
@@ -167,7 +167,7 @@ protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
 
 /- warning: absolute_value.add_le -> AbsoluteValue.add_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv y))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv y))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv y))
 Case conversion may be inaccurate. Consider using '#align absolute_value.add_le AbsoluteValue.add_leₓ'. -/
@@ -199,7 +199,7 @@ protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
 
 /- warning: absolute_value.pos -> AbsoluteValue.pos is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (LT.lt.{u2} S (Preorder.toHasLt.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x))
 but is expected to have type
   forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (LT.lt.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLT.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x))
 Case conversion may be inaccurate. Consider using '#align absolute_value.pos AbsoluteValue.posₓ'. -/
@@ -209,7 +209,7 @@ protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
 
 /- warning: absolute_value.pos_iff -> AbsoluteValue.pos_iff is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} S (Preorder.toHasLt.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLT.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.pos_iff AbsoluteValue.pos_iffₓ'. -/
@@ -258,7 +258,7 @@ variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
 /- warning: absolute_value.sub_le -> AbsoluteValue.sub_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) b c)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) b c)))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
 Case conversion may be inaccurate. Consider using '#align absolute_value.sub_le AbsoluteValue.sub_leₓ'. -/
@@ -367,7 +367,7 @@ variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 /- warning: absolute_value.le_sub -> AbsoluteValue.le_sub is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.le_sub AbsoluteValue.le_subₓ'. -/
@@ -445,7 +445,7 @@ variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue
 
 /- warning: absolute_value.abs_abv_sub_le_abv_sub -> AbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toHasLe.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2)))) (SemilatticeSup.toSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
@@ -522,7 +522,7 @@ theorem abv_zero : abv 0 = 0 :=
 
 /- warning: is_absolute_value.abv_pos -> IsAbsoluteValue.abv_pos is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 abv] {a : R}, Iff (LT.lt.{u1} S (Preorder.toLT.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommMonoid.toPartialOrder.{u1} S (OrderedSemiring.toOrderedAddCommMonoid.{u1} S _inst_1)))) (OfNat.ofNat.{u1} S 0 (OfNat.mk.{u1} S 0 (Zero.zero.{u1} S (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1)))))))) (abv a)) (Ne.{succ u2} R a (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2))))))))
+  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 abv] {a : R}, Iff (LT.lt.{u1} S (Preorder.toHasLt.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommMonoid.toPartialOrder.{u1} S (OrderedSemiring.toOrderedAddCommMonoid.{u1} S _inst_1)))) (OfNat.ofNat.{u1} S 0 (OfNat.mk.{u1} S 0 (Zero.zero.{u1} S (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1)))))))) (abv a)) (Ne.{succ u2} R a (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2))))))))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedSemiring.{u2} S] {R : Type.{u1}} [_inst_2 : Semiring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S _inst_1 R _inst_2 abv] {a : R}, Iff (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_1))) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_1))))) (abv a)) (Ne.{succ u1} R a (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_pos IsAbsoluteValue.abv_posₓ'. -/
@@ -594,7 +594,7 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 /- warning: is_absolute_value.abv_sub_le -> IsAbsoluteValue.abv_sub_le is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a c)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toHasAdd.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) b c)))
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u1} S (Preorder.toHasLe.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a c)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toHasAdd.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) b c)))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedRing.toOrderedSemiring.{u2} S _inst_1) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedRing.toPartialOrder.{u2} S _inst_1))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_1))))))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) b c)))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_sub_le IsAbsoluteValue.abv_sub_leₓ'. -/
@@ -604,7 +604,7 @@ theorem abv_sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
 
 /- warning: is_absolute_value.sub_abv_le_abv_sub -> IsAbsoluteValue.sub_abv_le_abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))) (abv a) (abv b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toHasLe.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))) (abv a) (abv b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedRing.toOrderedSemiring.{u2} S _inst_1) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedRing.toPartialOrder.{u2} S _inst_1))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (OrderedRing.toRing.{u2} S _inst_1))) (abv a) (abv b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.sub_abv_le_abv_sub IsAbsoluteValue.sub_abv_le_abv_subₓ'. -/
@@ -660,7 +660,7 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 /- warning: is_absolute_value.abs_abv_sub_le_abv_sub -> IsAbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (StrictOrderedRing.toOrderedAddCommGroup.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1))))))))) (abv a) (abv b))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
+  forall {S : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toHasLe.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (StrictOrderedRing.toOrderedAddCommGroup.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1))))))))) (abv a) (abv b))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (StrictOrderedRing.toPartialOrder.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (Ring.toNeg.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1)))) (SemilatticeSup.toSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (DistribLattice.toLattice.{u2} S (instDistribLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (abv a) (abv b))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_abv_sub_le_abv_sub IsAbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
Diff
@@ -4,15 +4,13 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
 
 ! This file was ported from Lean 3 source module algebra.order.absolute_value
-! leanprover-community/mathlib commit e1a7bdeb4fd826b7e71d130d34988f0a2d26a177
+! leanprover-community/mathlib commit 0013240bce820e3096cebb7ccf6d17e3f35f77ca
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.GroupWithZero.Units.Lemmas
 import Mathbin.Algebra.Order.Field.Defs
 import Mathbin.Algebra.Order.Hom.Basic
-import Mathbin.Algebra.Order.Ring.Abs
-import Mathbin.Algebra.Ring.Commute
 import Mathbin.Algebra.Ring.Regular
 
 /-!
Diff
@@ -299,7 +299,7 @@ variable [IsDomain S] [Nontrivial R]
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocRing.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toOrderedSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_one AbsoluteValue.map_oneₓ'. -/
 @[simp]
 protected theorem map_one : abv 1 = 1 :=
@@ -322,7 +322,7 @@ def toMonoidWithZeroHom : R →*₀ S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (fun (_x : MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) => R -> S) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (AbsoluteValue.toMonoidWithZeroHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHomₓ'. -/
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
@@ -340,7 +340,7 @@ def toMonoidHom : R →* S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (fun (_x : MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) => R -> S) (MonoidHom.hasCoeToFun.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (AbsoluteValue.toMonoidHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHomₓ'. -/
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
@@ -564,7 +564,7 @@ variable [IsDomain S]
 lean 3 declaration is
   forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (OrderedRing.toRing.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 1 (OfNat.mk.{u1} S 1 (One.one.{u1} S (AddMonoidWithOne.toOne.{u1} S (AddGroupWithOne.toAddMonoidWithOne.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))))
 but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_2)))) (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (NonAssocRing.toOne.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))))
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_2)))) (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (Semiring.toOne.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_one IsAbsoluteValue.abv_oneₓ'. -/
 theorem abv_one [Nontrivial R] : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one
Diff
@@ -460,10 +460,10 @@ end LinearOrderedCommRing
 end AbsoluteValue
 
 #print IsAbsoluteValue /-
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_nonneg] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_eq_zero] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_add] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`abv_mul] [] -/
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
 
Diff
@@ -260,7 +260,7 @@ variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
 /- warning: absolute_value.sub_le -> AbsoluteValue.sub_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) b c)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) b c)))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
 Case conversion may be inaccurate. Consider using '#align absolute_value.sub_le AbsoluteValue.sub_leₓ'. -/
@@ -270,7 +270,7 @@ protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c)
 
 /- warning: absolute_value.map_sub_eq_zero_iff -> AbsoluteValue.map_sub_eq_zero_iff is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R a b)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R a b)
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (Eq.{succ u1} R a b)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iffₓ'. -/
@@ -297,7 +297,7 @@ variable [IsDomain S] [Nontrivial R]
 
 /- warning: absolute_value.map_one -> AbsoluteValue.map_one is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocRing.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_one AbsoluteValue.map_oneₓ'. -/
@@ -369,7 +369,7 @@ variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 /- warning: absolute_value.le_sub -> AbsoluteValue.le_sub is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.le_sub AbsoluteValue.le_subₓ'. -/
@@ -389,7 +389,7 @@ variable [NoZeroDivisors S]
 
 /- warning: absolute_value.map_neg -> AbsoluteValue.map_neg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) a)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv a)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1))))) a)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv a)
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv a)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_neg AbsoluteValue.map_negₓ'. -/
@@ -404,7 +404,7 @@ protected theorem map_neg (a : R) : abv (-a) = abv a :=
 
 /- warning: absolute_value.map_sub -> AbsoluteValue.map_sub is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R) (b : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) b a))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R) (b : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) b a))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R) (b : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b a))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub AbsoluteValue.map_subₓ'. -/
@@ -447,7 +447,7 @@ variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue
 
 /- warning: absolute_value.abs_abv_sub_le_abv_sub -> AbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))) a b))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2)))) (SemilatticeSup.toSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
@@ -540,7 +540,7 @@ variable {S : Type _} [LinearOrderedRing S]
 
 /- warning: is_absolute_value.abs_is_absolute_value -> IsAbsoluteValue.abs_isAbsoluteValue is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) S (Ring.toSemiring.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1))))))
+  forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) S (Ring.toSemiring.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1))))))
 but is expected to have type
   forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) S (StrictOrderedSemiring.toSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (Ring.toNeg.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (SemilatticeSup.toSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (DistribLattice.toLattice.{u1} S (instDistribLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1)))))))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_is_absolute_value IsAbsoluteValue.abs_isAbsoluteValueₓ'. -/
@@ -562,7 +562,7 @@ variable [IsDomain S]
 
 /- warning: is_absolute_value.abv_one -> IsAbsoluteValue.abv_one is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (OrderedRing.toRing.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 1 (OfNat.mk.{u1} S 1 (One.one.{u1} S (AddMonoidWithOne.toOne.{u1} S (AddGroupWithOne.toAddMonoidWithOne.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))))
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (OrderedRing.toRing.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 1 (OfNat.mk.{u1} S 1 (One.one.{u1} S (AddMonoidWithOne.toOne.{u1} S (AddGroupWithOne.toAddMonoidWithOne.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))))
 but is expected to have type
   forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_2)))) (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (NonAssocRing.toOne.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_one IsAbsoluteValue.abv_oneₓ'. -/
@@ -596,7 +596,7 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 /- warning: is_absolute_value.abv_sub_le -> IsAbsoluteValue.abv_sub_le is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) a c)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toHasAdd.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) b c)))
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a c)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toHasAdd.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) b c)))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedRing.toOrderedSemiring.{u2} S _inst_1) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedRing.toPartialOrder.{u2} S _inst_1))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_1))))))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) b c)))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_sub_le IsAbsoluteValue.abv_sub_leₓ'. -/
@@ -606,7 +606,7 @@ theorem abv_sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
 
 /- warning: is_absolute_value.sub_abv_le_abv_sub -> IsAbsoluteValue.sub_abv_le_abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))) (abv a) (abv b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) a b))
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (OrderedRing.toOrderedAddCommGroup.{u1} S _inst_1)))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))) (abv a) (abv b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedRing.toOrderedSemiring.{u2} S _inst_1) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedRing.toPartialOrder.{u2} S _inst_1))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (OrderedRing.toRing.{u2} S _inst_1))) (abv a) (abv b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.sub_abv_le_abv_sub IsAbsoluteValue.sub_abv_le_abv_subₓ'. -/
@@ -630,7 +630,7 @@ variable [NoZeroDivisors S]
 
 /- warning: is_absolute_value.abv_neg -> IsAbsoluteValue.abv_neg is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)) R (Ring.toSemiring.{u2} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u1} S (Distrib.toHasMul.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))) (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))))))] (a : R), Eq.{succ u1} S (abv (Neg.neg.{u2} R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2))))) a)) (abv a)
+  forall {S : Type.{u1}} [_inst_1 : OrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)) R (Ring.toSemiring.{u2} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u1} S (Distrib.toHasMul.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))) (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))))))] (a : R), Eq.{succ u1} S (abv (Neg.neg.{u2} R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2))))) a)) (abv a)
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1)) R (Ring.toSemiring.{u1} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_1))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1))))] (a : R), Eq.{succ u2} S (abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_2) a)) (abv a)
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_neg IsAbsoluteValue.abv_negₓ'. -/
@@ -640,7 +640,7 @@ theorem abv_neg (a : R) : abv (-a) = abv a :=
 
 /- warning: is_absolute_value.abv_sub -> IsAbsoluteValue.abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : OrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)) R (Ring.toSemiring.{u2} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u1} S (Distrib.toHasMul.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))) (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))))))] (a : R) (b : R), Eq.{succ u1} S (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) b a))
+  forall {S : Type.{u1}} [_inst_1 : OrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)) R (Ring.toSemiring.{u2} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u1} S (Distrib.toHasMul.{u1} S (Ring.toDistrib.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))) (MulZeroClass.toHasZero.{u1} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S (OrderedCommRing.toOrderedRing.{u1} S _inst_1)))))))] (a : R) (b : R), Eq.{succ u1} S (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b)) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) b a))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : OrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1)) R (Ring.toSemiring.{u1} R _inst_2) abv] [_inst_4 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_1))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_1))))] (a : R) (b : R), Eq.{succ u2} S (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b)) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) b a))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_sub IsAbsoluteValue.abv_subₓ'. -/
@@ -662,7 +662,7 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 /- warning: is_absolute_value.abs_abv_sub_le_abv_sub -> IsAbsoluteValue.abs_abv_sub_le_abv_sub is a dubious translation:
 lean 3 declaration is
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (StrictOrderedRing.toOrderedAddCommGroup.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1))))))))) (abv a) (abv b))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) a b))
+  forall {S : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (StrictOrderedRing.toOrderedAddCommGroup.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (AddCommGroupWithOne.toAddGroupWithOne.{u1} S (Ring.toAddCommGroupWithOne.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1))))))))) (abv a) (abv b))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))))) a b))
 but is expected to have type
   forall {S : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (StrictOrderedRing.toPartialOrder.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (Ring.toNeg.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1)))) (SemilatticeSup.toSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (DistribLattice.toLattice.{u2} S (instDistribLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (abv a) (abv b))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_abv_sub_le_abv_sub IsAbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
Diff
@@ -560,11 +560,15 @@ variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [IsDomain S]
 
-#print IsAbsoluteValue.abv_one /-
+/- warning: is_absolute_value.abv_one -> IsAbsoluteValue.abv_one is a dubious translation:
+lean 3 declaration is
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (OrderedRing.toRing.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))))))) (OfNat.ofNat.{u1} S 1 (OfNat.mk.{u1} S 1 (One.one.{u1} S (AddMonoidWithOne.toOne.{u1} S (AddGroupWithOne.toAddMonoidWithOne.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_1))))))))
+but is expected to have type
+  forall {S : Type.{u1}} [_inst_1 : OrderedRing.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1) R _inst_2 abv] [_inst_4 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_1))] [_inst_5 : Nontrivial.{u2} R], Eq.{succ u1} S (abv (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_2)))) (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (NonAssocRing.toOne.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align is_absolute_value.abv_one IsAbsoluteValue.abv_oneₓ'. -/
 theorem abv_one [Nontrivial R] : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one
 #align is_absolute_value.abv_one IsAbsoluteValue.abv_one
--/
 
 #print IsAbsoluteValue.abvHom /-
 /-- `abv` as a `monoid_with_zero_hom`. -/
Diff
@@ -103,7 +103,7 @@ instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
@@ -114,7 +114,7 @@ theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] {{f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) f x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) g x)) -> (Eq.{max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) f g)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] {{f : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) f g)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] {{f : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) f g)
 Case conversion may be inaccurate. Consider using '#align absolute_value.ext AbsoluteValue.extₓ'. -/
 @[ext]
 theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
@@ -150,7 +150,7 @@ theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)
 Case conversion may be inaccurate. Consider using '#align absolute_value.nonneg AbsoluteValue.nonnegₓ'. -/
 protected theorem nonneg (x : R) : 0 ≤ abv x :=
   abv.nonneg' x
@@ -160,7 +160,7 @@ protected theorem nonneg (x : R) : 0 ≤ abv x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2)))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.eq_zero AbsoluteValue.eq_zeroₓ'. -/
 @[simp]
 protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
@@ -171,7 +171,7 @@ protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv y))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv y))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv y))
 Case conversion may be inaccurate. Consider using '#align absolute_value.add_le AbsoluteValue.add_leₓ'. -/
 protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
@@ -182,7 +182,7 @@ warning: absolute_value.map_mul -> map_mul is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (x : R) (y : R), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (HMul.hMul.{u_1, u_1, u_1} R R R (instHMul.{u_1} R (Distrib.toHasMul.{u_1} R (NonUnitalNonAssocSemiring.toDistrib.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1))))) x y)) (HMul.hMul.{u_2, u_2, u_2} S S S (instHMul.{u_2} S (Distrib.toHasMul.{u_2} S (NonUnitalNonAssocSemiring.toDistrib.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2)))))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv y))
 but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
+  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_mul map_mulₓ'. -/
 @[simp]
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
@@ -193,7 +193,7 @@ protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2)))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2)))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.ne_zero_iff AbsoluteValue.ne_zero_iffₓ'. -/
 protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
   abv.eq_zero.Not
@@ -203,7 +203,7 @@ protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (LT.lt.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Preorder.toLT.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (PartialOrder.toPreorder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toPartialOrder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x))
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (LT.lt.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLT.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x))
 Case conversion may be inaccurate. Consider using '#align absolute_value.pos AbsoluteValue.posₓ'. -/
 protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
   lt_of_le_of_ne (abv.NonNeg x) (Ne.symm <| mt abv.eq_zero.mp hx)
@@ -213,7 +213,7 @@ protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Preorder.toLT.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Preorder.toLT.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.pos_iff AbsoluteValue.pos_iffₓ'. -/
 @[simp]
 protected theorem pos_iff {x : R} : 0 < abv x ↔ x ≠ 0 :=
@@ -224,7 +224,7 @@ protected theorem pos_iff {x : R} : 0 < abv x ↔ x ≠ 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (Ne.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))))
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) x) _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.ne_zero AbsoluteValue.ne_zeroₓ'. -/
 protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
   (abv.Pos hx).ne'
@@ -234,7 +234,7 @@ protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} S (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} S (NonAssocSemiring.toAddCommMonoidWithOne.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegularₓ'. -/
 theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← abv.map_mul]
@@ -245,7 +245,7 @@ warning: absolute_value.map_zero -> map_zero is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u_1} R 0 (OfNat.mk.{u_1} R 0 (Zero.zero.{u_1} R (MulZeroClass.toHasZero.{u_1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)))))))) (OfNat.ofNat.{u_2} S 0 (OfNat.mk.{u_2} S 0 (Zero.zero.{u_2} S (MulZeroClass.toHasZero.{u_2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1354 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1354) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
+  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1363 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1363) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_zero map_zeroₓ'. -/
 @[simp]
 protected theorem map_zero : abv 0 = 0 :=
@@ -262,7 +262,7 @@ variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) b c)))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
 Case conversion may be inaccurate. Consider using '#align absolute_value.sub_le AbsoluteValue.sub_leₓ'. -/
 protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
@@ -272,7 +272,7 @@ protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R a b)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (Eq.{succ u1} R a b)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (Eq.{succ u1} R a b)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iffₓ'. -/
 @[simp]
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
@@ -299,7 +299,7 @@ variable [IsDomain S] [Nontrivial R]
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocRing.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocRing.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_one AbsoluteValue.map_oneₓ'. -/
 @[simp]
 protected theorem map_one : abv 1 = 1 :=
@@ -322,7 +322,7 @@ def toMonoidWithZeroHom : R →*₀ S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (fun (_x : MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) => R -> S) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (AbsoluteValue.toMonoidWithZeroHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHomₓ'. -/
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
@@ -340,7 +340,7 @@ def toMonoidHom : R →* S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (fun (_x : MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) => R -> S) (MonoidHom.hasCoeToFun.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (AbsoluteValue.toMonoidHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHomₓ'. -/
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
@@ -352,7 +352,7 @@ warning: absolute_value.map_pow -> map_pow is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedRing.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) [_inst_3 : IsDomain.{u_2} S (Ring.toSemiring.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2))] [_inst_4 : Nontrivial.{u_1} R] (a : R) (n : Nat), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)))) a n)) (HPow.hPow.{u_2, 0, u_2} S Nat S (instHPow.{u_2, 0} S Nat (Monoid.Pow.{u_2} S (Ring.toMonoid.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2)))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv a) n)
 but is expected to have type
-  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
+  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_pow map_powₓ'. -/
 @[simp]
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
@@ -371,7 +371,7 @@ variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.le_sub AbsoluteValue.le_subₓ'. -/
 protected theorem le_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   sub_le_iff_le_add.2 <| by simpa using abv.add_le (a - b) b
@@ -391,7 +391,7 @@ variable [NoZeroDivisors S]
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) a)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv a)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv a)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv a)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_neg AbsoluteValue.map_negₓ'. -/
 @[simp]
 protected theorem map_neg (a : R) : abv (-a) = abv a :=
@@ -406,7 +406,7 @@ protected theorem map_neg (a : R) : abv (-a) = abv a :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R) (b : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) b a))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R) (b : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b a))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R) (b : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b a))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub AbsoluteValue.map_subₓ'. -/
 protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← neg_sub, abv.map_neg]
 #align absolute_value.map_sub AbsoluteValue.map_sub
@@ -449,7 +449,7 @@ variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2)))) (SemilatticeSup.toSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2)))) (SemilatticeSup.toSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub] <;> apply abv.le_sub⟩
@@ -489,7 +489,7 @@ variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 lean 3 declaration is
   forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) (fun (f : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) => R -> S) (AbsoluteValue.hasCoeToFun.{u2, u1} R S _inst_2 _inst_1) abv)
 but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_1))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_2 _inst_1)) abv)
+  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_1))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_2 _inst_1)) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValueₓ'. -/
 /-- A bundled absolute value is an absolute value. -/
 instance AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteValue abv
Diff
@@ -103,7 +103,7 @@ instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
@@ -182,7 +182,7 @@ warning: absolute_value.map_mul -> map_mul is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (x : R) (y : R), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (HMul.hMul.{u_1, u_1, u_1} R R R (instHMul.{u_1} R (Distrib.toHasMul.{u_1} R (NonUnitalNonAssocSemiring.toDistrib.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1))))) x y)) (HMul.hMul.{u_2, u_2, u_2} S S S (instHMul.{u_2} S (Distrib.toHasMul.{u_2} S (NonUnitalNonAssocSemiring.toDistrib.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2)))))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv y))
 but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
+  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Mul.{u_2} R] [abv : Mul.{u_3} S] [x : MulHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (y : _inst_1) (x_1 : R) (y_1 : R), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y (HMul.hMul.{u_2, u_2, u_2} R R R (instHMul.{u_2} R _inst_2) x_1 y_1)) (HMul.hMul.{u_3, u_3, u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) y_1) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x_1) (instHMul.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x_1) abv) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y x_1) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv x) y y_1))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_mul map_mulₓ'. -/
 @[simp]
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
@@ -245,7 +245,7 @@ warning: absolute_value.map_zero -> map_zero is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedSemiring.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u_1} R 0 (OfNat.mk.{u_1} R 0 (Zero.zero.{u_1} R (MulZeroClass.toHasZero.{u_1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u_1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)))))))) (OfNat.ofNat.{u_2} S 0 (OfNat.mk.{u_2} S 0 (Zero.zero.{u_2} S (MulZeroClass.toHasZero.{u_2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_2} S (Semiring.toNonAssocSemiring.{u_2} S (OrderedSemiring.toSemiring.{u_2} S _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1380 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1380) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
+  forall {R : Type.{u_2}} {S : Type.{u_3}} {_inst_1 : Type.{u_1}} [_inst_2 : Zero.{u_2} R] [abv : Zero.{u_3} S] [inst._@.Mathlib.Algebra.Hom.Group._hyg.1354 : ZeroHomClass.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv] (f : _inst_1), Eq.{succ u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (FunLike.coe.{succ u_1, succ u_2, succ u_3} _inst_1 R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) a) (ZeroHomClass.toFunLike.{u_1, u_2, u_3} _inst_1 R S _inst_2 abv inst._@.Mathlib.Algebra.Hom.Group._hyg.1354) f (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) (OfNat.ofNat.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) 0 (Zero.toOfNat0.{u_3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : R) => S) (OfNat.ofNat.{u_2} R 0 (Zero.toOfNat0.{u_2} R _inst_2))) abv))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_zero map_zeroₓ'. -/
 @[simp]
 protected theorem map_zero : abv 0 = 0 :=
@@ -322,7 +322,7 @@ def toMonoidWithZeroHom : R →*₀ S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (fun (_x : MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) => R -> S) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (AbsoluteValue.toMonoidWithZeroHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHomₓ'. -/
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
@@ -340,7 +340,7 @@ def toMonoidHom : R →* S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (fun (_x : MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) => R -> S) (MonoidHom.hasCoeToFun.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (AbsoluteValue.toMonoidHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHomₓ'. -/
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
@@ -352,7 +352,7 @@ warning: absolute_value.map_pow -> map_pow is a dubious translation:
 lean 3 declaration is
   forall {R : Type.{u_1}} {S : Type.{u_2}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : OrderedRing.{u_2} S] (abv : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) [_inst_3 : IsDomain.{u_2} S (Ring.toSemiring.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2))] [_inst_4 : Nontrivial.{u_1} R] (a : R) (n : Nat), Eq.{succ u_2} S (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)))) a n)) (HPow.hPow.{u_2, 0, u_2} S Nat S (instHPow.{u_2, 0} S Nat (Monoid.Pow.{u_2} S (Ring.toMonoid.{u_2} S (OrderedRing.toRing.{u_2} S _inst_2)))) (coeFn.{max (succ u_1) (succ u_2), max (succ u_1) (succ u_2)} (AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) (fun (f : AbsoluteValue.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u_1, u_2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u_2} S _inst_2)) abv a) n)
 but is expected to have type
-  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
+  forall {R : Type.{u_1}} {S : Type.{u_2}} {_inst_1 : Type.{u_3}} [_inst_2 : Monoid.{u_1} R] [abv : Monoid.{u_2} S] [_inst_3 : MonoidHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv)] (_inst_4 : _inst_1) (a : R) (n : Nat), Eq.{succ u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 (HPow.hPow.{u_1, 0, u_1} R Nat R (instHPow.{u_1, 0} R Nat (Monoid.Pow.{u_1} R _inst_2)) a n)) (HPow.hPow.{u_2, 0, u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (instHPow.{u_2, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) Nat (Monoid.Pow.{u_2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) abv)) (FunLike.coe.{succ u_3, succ u_1, succ u_2} _inst_1 R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) f) (MulHomClass.toFunLike.{u_3, u_1, u_2} _inst_1 R S (MulOneClass.toMul.{u_1} R (Monoid.toMulOneClass.{u_1} R _inst_2)) (MulOneClass.toMul.{u_2} S (Monoid.toMulOneClass.{u_2} S abv)) (MonoidHomClass.toMulHomClass.{u_3, u_1, u_2} _inst_1 R S (Monoid.toMulOneClass.{u_1} R _inst_2) (Monoid.toMulOneClass.{u_2} S abv) _inst_3)) _inst_4 a) n)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_pow map_powₓ'. -/
 @[simp]
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
 
 ! This file was ported from Lean 3 source module algebra.order.absolute_value
-! leanprover-community/mathlib commit 7ea604785a41a0681eac70c5a82372493dbefc68
+! leanprover-community/mathlib commit e1a7bdeb4fd826b7e71d130d34988f0a2d26a177
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -47,8 +47,6 @@ namespace AbsoluteValue
 
 attribute [nolint doc_blame] AbsoluteValue.toMulHom
 
-initialize_simps_projections AbsoluteValue (to_mul_hom_to_fun → apply)
-
 section OrderedSemiring
 
 section Semiring
@@ -123,6 +121,15 @@ theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
   FunLike.ext _ _
 #align absolute_value.ext AbsoluteValue.ext
 
+#print AbsoluteValue.Simps.apply /-
+/-- See Note [custom simps projection]. -/
+def Simps.apply (f : AbsoluteValue R S) : R → S :=
+  f
+#align absolute_value.simps.apply AbsoluteValue.Simps.apply
+-/
+
+initialize_simps_projections AbsoluteValue (to_mul_hom_to_fun → apply)
+
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
 instance : CoeFun (AbsoluteValue R S) fun f => R → S :=
Diff
@@ -442,7 +442,7 @@ variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2)))) (SemilatticeSup.toHasSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2)))) (SemilatticeSup.toSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub] <;> apply abv.le_sub⟩
@@ -535,7 +535,7 @@ variable {S : Type _} [LinearOrderedRing S]
 lean 3 declaration is
   forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) S (Ring.toSemiring.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1))))))
 but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) S (StrictOrderedSemiring.toSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (Ring.toNeg.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (DistribLattice.toLattice.{u1} S (instDistribLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1)))))))
+  forall {S : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} S], IsAbsoluteValue.{u1, u1} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) S (StrictOrderedSemiring.toSemiring.{u1} S (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toLinearOrderedSemiring.{u1} S _inst_1))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (Ring.toNeg.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S _inst_1))) (SemilatticeSup.toSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (DistribLattice.toLattice.{u1} S (instDistribLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S _inst_1)))))))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_is_absolute_value IsAbsoluteValue.abs_isAbsoluteValueₓ'. -/
 instance abs_isAbsoluteValue : IsAbsoluteValue (abs : S → S) :=
   AbsoluteValue.abs.IsAbsoluteValue
@@ -653,7 +653,7 @@ variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 lean 3 declaration is
   forall {S : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} S] {R : Type.{u2}} [_inst_2 : Ring.{u2} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u1, u2} S (StrictOrderedSemiring.toOrderedSemiring.{u1} S (StrictOrderedRing.toStrictOrderedSemiring.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))) R (Ring.toSemiring.{u2} R _inst_2) abv] (a : R) (b : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedAddCommGroup.toPartialOrder.{u1} S (StrictOrderedRing.toOrderedAddCommGroup.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (Abs.abs.{u1} S (Neg.toHasAbs.{u1} S (SubNegMonoid.toHasNeg.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} S (Lattice.toSemilatticeSup.{u1} S (LinearOrder.toLattice.{u1} S (LinearOrderedRing.toLinearOrder.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1)))))) (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (SubNegMonoid.toHasSub.{u1} S (AddGroup.toSubNegMonoid.{u1} S (AddGroupWithOne.toAddGroup.{u1} S (NonAssocRing.toAddGroupWithOne.{u1} S (Ring.toNonAssocRing.{u1} S (StrictOrderedRing.toRing.{u1} S (LinearOrderedRing.toStrictOrderedRing.{u1} S (LinearOrderedCommRing.toLinearOrderedRing.{u1} S _inst_1))))))))) (abv a) (abv b))) (abv (HSub.hSub.{u2, u2, u2} R R R (instHSub.{u2} R (SubNegMonoid.toHasSub.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))))) a b))
 but is expected to have type
-  forall {S : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (StrictOrderedRing.toPartialOrder.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (Ring.toNeg.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1)))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (DistribLattice.toLattice.{u2} S (instDistribLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (abv a) (abv b))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
+  forall {S : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} S] {R : Type.{u1}} [_inst_2 : Ring.{u1} R] (abv : R -> S) [_inst_3 : IsAbsoluteValue.{u2, u1} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_1)))) R (Ring.toSemiring.{u1} R _inst_2) abv] (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (StrictOrderedRing.toPartialOrder.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (Ring.toNeg.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1)))) (SemilatticeSup.toSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (DistribLattice.toLattice.{u2} S (instDistribLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (Ring.toSub.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_1))))) (abv a) (abv b))) (abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_2)) a b))
 Case conversion may be inaccurate. Consider using '#align is_absolute_value.abs_abv_sub_le_abv_sub IsAbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   (toAbsoluteValue abv).abs_abv_sub_le_abv_sub a b
Diff
@@ -105,7 +105,7 @@ instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (f : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) {h₁ : forall (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u2} S (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))} {h₃ : forall (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f x) (MulHom.toFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) f y))}, Eq.{max (succ u1) (succ u2)} ((fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) (AbsoluteValue.mk.{u1, u2} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (fun (_x : MulHom.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) => R -> S) (MulHom.hasCoeToFun.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (f : MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) {h₁ : forall (x : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x)} {h₂ : forall (x : R), Iff (Eq.{succ u1} S (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (Eq.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)))))} {h₃ : forall (x : R) (y : R), LE.le.{u1} S (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))))) x y)) (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f x) (MulHom.toFun.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) f y))}, Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) (AbsoluteValue.mk.{u2, u1} R S _inst_1 _inst_2 f h₁ h₂ h₃)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MulHom.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))) (MulHom.mulHomClass.{u2, u1} R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2)))))) f)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_mk AbsoluteValue.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h₂ h₃ : R → S) = f :=
@@ -116,7 +116,7 @@ theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] {{f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) f x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (_x : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (_x : R) => S) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2))) g x)) -> (Eq.{max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) f g)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] {{f : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) f g)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] {{f : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}} {{g : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2}}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) _x) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) f g)
 Case conversion may be inaccurate. Consider using '#align absolute_value.ext AbsoluteValue.extₓ'. -/
 @[ext]
 theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
@@ -143,7 +143,7 @@ theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)
 Case conversion may be inaccurate. Consider using '#align absolute_value.nonneg AbsoluteValue.nonnegₓ'. -/
 protected theorem nonneg (x : R) : 0 ≤ abv x :=
   abv.nonneg' x
@@ -153,7 +153,7 @@ protected theorem nonneg (x : R) : 0 ≤ abv x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2)))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2)))))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.eq_zero AbsoluteValue.eq_zeroₓ'. -/
 @[simp]
 protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
@@ -164,7 +164,7 @@ protected theorem eq_zero {x : R} : abv x = 0 ↔ x = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv y))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv y))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (x : R) (y : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv y))
 Case conversion may be inaccurate. Consider using '#align absolute_value.add_le AbsoluteValue.add_leₓ'. -/
 protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
@@ -186,7 +186,7 @@ protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2)))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2)))))) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.ne_zero_iff AbsoluteValue.ne_zero_iffₓ'. -/
 protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
   abv.eq_zero.Not
@@ -196,7 +196,7 @@ protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (LT.lt.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Preorder.toLT.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (PartialOrder.toPreorder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toPartialOrder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x))
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (LT.lt.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Preorder.toLT.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (PartialOrder.toPreorder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toPartialOrder.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x))
 Case conversion may be inaccurate. Consider using '#align absolute_value.pos AbsoluteValue.posₓ'. -/
 protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
   lt_of_le_of_ne (abv.NonNeg x) (Ne.symm <| mt abv.eq_zero.mp hx)
@@ -206,7 +206,7 @@ protected theorem pos {x : R} (hx : x ≠ 0) : 0 < abv x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} S (Preorder.toLT.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Preorder.toLT.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, Iff (LT.lt.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Preorder.toLT.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv x)) (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.pos_iff AbsoluteValue.pos_iffₓ'. -/
 @[simp]
 protected theorem pos_iff {x : R} : 0 < abv x ↔ x ≠ 0 :=
@@ -217,7 +217,7 @@ protected theorem pos_iff {x : R} : 0 < abv x ↔ x ≠ 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) -> (Ne.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv x) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) x) _inst_2))))))
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedSemiring.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) {x : R}, (Ne.{succ u2} R x (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_2))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 _inst_2)) abv x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) (OrderedSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) x) _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.ne_zero AbsoluteValue.ne_zeroₓ'. -/
 protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
   (abv.Pos hx).ne'
@@ -227,7 +227,7 @@ protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} S (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 _inst_2) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} S (NonAssocSemiring.toAddCommMonoidWithOne.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 _inst_2), (IsLeftRegular.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 _inst_2)) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegularₓ'. -/
 theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← abv.map_mul]
@@ -255,7 +255,7 @@ variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommMonoid.toPartialOrder.{u2} S (OrderedSemiring.toOrderedAddCommMonoid.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a c)) (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) b c)))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R) (c : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (OrderedSemiring.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a c)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (instHAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Distrib.toAdd.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonUnitalNonAssocSemiring.toDistrib.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b c)))
 Case conversion may be inaccurate. Consider using '#align absolute_value.sub_le AbsoluteValue.sub_leₓ'. -/
 protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
@@ -265,7 +265,7 @@ protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))))))) (Eq.{succ u1} R a b)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (Eq.{succ u1} R a b)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedSemiring.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) (a : R) (b : R), Iff (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S _inst_2))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S _inst_2))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (OrderedSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) _inst_2)))))) (Eq.{succ u1} R a b)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iffₓ'. -/
 @[simp]
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
@@ -292,7 +292,7 @@ variable [IsDomain S] [Nontrivial R]
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocRing.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (NonAssocRing.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R _inst_1)))) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_one AbsoluteValue.map_oneₓ'. -/
 @[simp]
 protected theorem map_one : abv 1 = 1 :=
@@ -315,7 +315,7 @@ def toMonoidWithZeroHom : R →*₀ S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (fun (_x : MonoidWithZeroHom.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) => R -> S) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} R S (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))) (AbsoluteValue.toMonoidWithZeroHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} R S (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidWithZeroHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_with_zero_hom AbsoluteValue.coe_toMonoidWithZeroHomₓ'. -/
 @[simp]
 theorem coe_toMonoidWithZeroHom : ⇑abv.toMonoidWithZeroHom = abv :=
@@ -333,7 +333,7 @@ def toMonoidHom : R →* S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (OrderedRing.toRing.{u2} S _inst_2))] [_inst_4 : Nontrivial.{u1} R], Eq.{max (succ u1) (succ u2)} (R -> S) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (fun (_x : MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) => R -> S) (MonoidHom.hasCoeToFun.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2)))))) (AbsoluteValue.toMonoidHom.{u1, u2} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S _inst_1 (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : OrderedRing.{u1} S] (abv : AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) [_inst_3 : IsDomain.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2))] [_inst_4 : Nontrivial.{u2} R], Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulOneClass.toMul.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (MulOneClass.toMul.{u1} S (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))) R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (OrderedRing.toRing.{u1} S _inst_2)))))))) (AbsoluteValue.toMonoidHom.{u2, u1} R S _inst_1 _inst_2 abv _inst_3 _inst_4)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u2 u1, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2)) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S (OrderedRing.toOrderedSemiring.{u1} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_1 (OrderedRing.toOrderedSemiring.{u1} S _inst_2))) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHomₓ'. -/
 @[simp]
 theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
@@ -364,7 +364,7 @@ variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (OrderedRing.toOrderedAddCommGroup.{u2} S _inst_2)))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S _inst_2))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (OrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (OrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2)) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedRing.toOrderedSemiring.{u2} S _inst_2)))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.le_sub AbsoluteValue.le_subₓ'. -/
 protected theorem le_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   sub_le_iff_le_add.2 <| by simpa using abv.add_le (a - b) b
@@ -384,7 +384,7 @@ variable [NoZeroDivisors S]
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) a)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv a)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv a)
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (Neg.neg.{u1} R (Ring.toNeg.{u1} R _inst_1) a)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv a)
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_neg AbsoluteValue.map_negₓ'. -/
 @[simp]
 protected theorem map_neg (a : R) : abv (-a) = abv a :=
@@ -399,7 +399,7 @@ protected theorem map_neg (a : R) : abv (-a) = abv a :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2)))))))] (a : R) (b : R), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedRing.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) b a))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R) (b : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b a))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : OrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) [_inst_3 : NoZeroDivisors.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (OrderedRing.toRing.{u2} S (OrderedCommRing.toOrderedRing.{u2} S _inst_2))))) (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (OrderedCommSemiring.toCommSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))] (a : R) (b : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (OrderedCommRing.toOrderedCommSemiring.{u2} S _inst_2)))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) b a))
 Case conversion may be inaccurate. Consider using '#align absolute_value.map_sub AbsoluteValue.map_subₓ'. -/
 protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← neg_sub, abv.map_neg]
 #align absolute_value.map_sub AbsoluteValue.map_sub
@@ -442,7 +442,7 @@ variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} S (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedAddCommGroup.toPartialOrder.{u2} S (StrictOrderedRing.toOrderedAddCommGroup.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (Abs.abs.{u2} S (Neg.toHasAbs.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} S (Lattice.toSemilatticeSup.{u2} S (LinearOrder.toLattice.{u2} S (LinearOrderedRing.toLinearOrder.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2)))))) (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (NonAssocRing.toAddGroupWithOne.{u2} S (Ring.toNonAssocRing.{u2} S (StrictOrderedRing.toRing.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv b))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) (fun (f : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) => R -> S) (AbsoluteValue.hasCoeToFun.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{u2} S (StrictOrderedRing.toStrictOrderedSemiring.{u2} S (LinearOrderedRing.toStrictOrderedRing.{u2} S (LinearOrderedCommRing.toLinearOrderedRing.{u2} S _inst_2))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (SubNegMonoid.toHasSub.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))))) a b))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) _inst_2)))) (SemilatticeSup.toHasSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : LinearOrderedCommRing.{u2} S] (abv : AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) (a : R) (b : R), LE.le.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Preorder.toLE.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (PartialOrder.toPreorder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toPartialOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (Abs.abs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Neg.toHasAbs.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toNeg.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2)))) (SemilatticeSup.toHasSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Lattice.toSemilatticeSup.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (DistribLattice.toLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instDistribLattice.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toLinearOrder.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))))) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) b) ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (instHSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (Ring.toSub.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (StrictOrderedRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedRing.toStrictOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) (LinearOrderedCommRing.toLinearOrderedRing.{u2} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) a) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv b))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u1, u2} (AbsoluteValue.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))) R S (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (OrderedSemiring.toSemiring.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))))) (Preorder.toLE.{u2} S (PartialOrder.toPreorder.{u2} S (OrderedSemiring.toPartialOrder.{u2} S (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2))))))) (AbsoluteValue.subadditiveHomClass.{u1, u2} R S (Ring.toSemiring.{u1} R _inst_1) (OrderedCommSemiring.toOrderedSemiring.{u2} S (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} S (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} S (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} S _inst_2)))))) abv (HSub.hSub.{u1, u1, u1} R R R (instHSub.{u1} R (Ring.toSub.{u1} R _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align absolute_value.abs_abv_sub_le_abv_sub AbsoluteValue.abs_abv_sub_le_abv_subₓ'. -/
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub] <;> apply abv.le_sub⟩
@@ -482,7 +482,7 @@ variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 lean 3 declaration is
   forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) (fun (f : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) => R -> S) (AbsoluteValue.hasCoeToFun.{u2, u1} R S _inst_2 _inst_1) abv)
 but is expected to have type
-  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.96 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_1))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_2 _inst_1)) abv)
+  forall {S : Type.{u1}} [_inst_1 : OrderedSemiring.{u1} S] {R : Type.{u2}} [_inst_2 : Semiring.{u2} R] (abv : AbsoluteValue.{u2, u1} R S _inst_2 _inst_1), IsAbsoluteValue.{u1, u2} S _inst_1 R _inst_2 (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R (fun (f : R) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.98 : R) => S) f) (SubadditiveHomClass.toFunLike.{max u1 u2, u2, u1} (AbsoluteValue.{u2, u1} R S _inst_2 _inst_1) R S (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)))) (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (OrderedSemiring.toSemiring.{u1} S _inst_1))))) (Preorder.toLE.{u1} S (PartialOrder.toPreorder.{u1} S (OrderedSemiring.toPartialOrder.{u1} S _inst_1))) (AbsoluteValue.subadditiveHomClass.{u2, u1} R S _inst_2 _inst_1)) abv)
 Case conversion may be inaccurate. Consider using '#align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValueₓ'. -/
 /-- A bundled absolute value is an absolute value. -/
 instance AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteValue abv

Changes in mathlib4

mathlib3
mathlib4
chore: classify "simp can prove" porting notes (#11550)

Classifies by adding issue number #10618 to porting notes claiming "simp can prove it".

Diff
@@ -109,7 +109,7 @@ protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
 #align absolute_value.add_le AbsoluteValue.add_le
 
--- Porting note: was `@[simp]` but `simp` can prove it
+-- Porting note (#10618): was `@[simp]` but `simp` can prove it
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
   abv.map_mul' x y
 #align absolute_value.map_mul AbsoluteValue.map_mul
@@ -135,7 +135,7 @@ theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← abv.map_mul]
 #align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
 
--- Porting note: was `@[simp]` but `simp` can prove it
+-- Porting note (#10618): was `@[simp]` but `simp` can prove it
 protected theorem map_zero : abv 0 = 0 :=
   abv.eq_zero.2 rfl
 #align absolute_value.map_zero AbsoluteValue.map_zero
@@ -170,7 +170,7 @@ section IsDomain
 variable {R S : Type*} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
 variable [IsDomain S] [Nontrivial R]
 
--- Porting note: was `@[simp]` but `simp` can prove it
+-- Porting note (#10618): was `@[simp]` but `simp` can prove it
 protected theorem map_one : abv 1 = 1 :=
   abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.ne_zero one_ne_zero).left
 #align absolute_value.map_one AbsoluteValue.map_one
@@ -200,7 +200,7 @@ theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
   rfl
 #align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom
 
--- Porting note: was `@[simp]` but `simp` can prove it
+-- Porting note (#10618): was `@[simp]` but `simp` can prove it
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
   abv.toMonoidHom.map_pow a n
 #align absolute_value.map_pow AbsoluteValue.map_pow
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -168,7 +168,6 @@ section IsDomain
 -- all of these are true for `NoZeroDivisors S`; but it doesn't work smoothly with the
 -- `IsDomain`/`CancelMonoidWithZero` API
 variable {R S : Type*} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
-
 variable [IsDomain S] [Nontrivial R]
 
 -- Porting note: was `@[simp]` but `simp` can prove it
@@ -224,7 +223,6 @@ end OrderedRing
 
 section OrderedCommRing
 variable [OrderedCommRing S] [Ring R] (abv : AbsoluteValue R S)
-
 variable [NoZeroDivisors S]
 
 @[simp]
@@ -311,7 +309,6 @@ namespace IsAbsoluteValue
 section OrderedSemiring
 
 variable {S : Type*} [OrderedSemiring S]
-
 variable {R : Type*} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 lemma abv_nonneg (x) : 0 ≤ abv x := abv_nonneg' x
@@ -381,7 +378,6 @@ variable {S : Type*} [OrderedRing S]
 section Semiring
 
 variable {R : Type*} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
-
 variable [IsDomain S]
 
 theorem abv_one [Nontrivial R] : abv 1 = 1 :=
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -109,7 +109,7 @@ protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
 #align absolute_value.add_le AbsoluteValue.add_le
 
--- porting note: was `@[simp]` but `simp` can prove it
+-- Porting note: was `@[simp]` but `simp` can prove it
 protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
   abv.map_mul' x y
 #align absolute_value.map_mul AbsoluteValue.map_mul
@@ -135,7 +135,7 @@ theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← abv.map_mul]
 #align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
 
--- porting note: was `@[simp]` but `simp` can prove it
+-- Porting note: was `@[simp]` but `simp` can prove it
 protected theorem map_zero : abv 0 = 0 :=
   abv.eq_zero.2 rfl
 #align absolute_value.map_zero AbsoluteValue.map_zero
@@ -150,7 +150,7 @@ protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c)
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
 #align absolute_value.sub_le AbsoluteValue.sub_le
 
-@[simp high] -- porting note: added `high` to apply it before `AbsoluteValue.eq_zero`
+@[simp high] -- Porting note: added `high` to apply it before `AbsoluteValue.eq_zero`
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
   abv.eq_zero.trans sub_eq_zero
 #align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iff
@@ -171,7 +171,7 @@ variable {R S : Type*} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 variable [IsDomain S] [Nontrivial R]
 
--- porting note: was `@[simp]` but `simp` can prove it
+-- Porting note: was `@[simp]` but `simp` can prove it
 protected theorem map_one : abv 1 = 1 :=
   abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.ne_zero one_ne_zero).left
 #align absolute_value.map_one AbsoluteValue.map_one
@@ -201,7 +201,7 @@ theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
   rfl
 #align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom
 
--- porting note: was `@[simp]` but `simp` can prove it
+-- Porting note: was `@[simp]` but `simp` can prove it
 protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
   abv.toMonoidHom.map_pow a n
 #align absolute_value.map_pow AbsoluteValue.map_pow
chore(CauSeq): Cleanup (#10530)
  • Rename Data.Real.CauSeq to Algebra.Order.CauSeq.Basic
  • Rename Data.Real.CauSeqCompletion to Algebra.Order.CauSeq.Completion
  • Move the general lemmas about CauSeq from Data.Complex.Exponential to a new file Algebra.Order.CauSeq.BigOperators
  • Move the lemmas mentioning Module from Algebra.BigOperators.Intervals to a new file Algebra.BigOperators.Module
  • Move a few more lemmas to earlier files
  • Deprecate abv_sum_le_sum_abv as it's a duplicate of IsAbsoluteValue.abv_sum
Diff
@@ -26,8 +26,7 @@ This file defines a bundled type of absolute values `AbsoluteValue R S`.
    value
 -/
 
-set_option autoImplicit true
-
+variable {ι α R S : Type*}
 
 /-- `AbsoluteValue R S` is the type of absolute values on `R` mapping to `S`:
 the maps that preserve `*`, are nonnegative, positive definite and satisfy the triangle equality. -/
@@ -224,8 +223,7 @@ end Ring
 end OrderedRing
 
 section OrderedCommRing
-
-variable {R S : Type*} [Ring R] [OrderedCommRing S] (abv : AbsoluteValue R S)
+variable [OrderedCommRing S] [Ring R] (abv : AbsoluteValue R S)
 
 variable [NoZeroDivisors S]
 
@@ -248,15 +246,14 @@ protected theorem le_add (a b : R) : abv a - abv b ≤ abv (a + b) := by
 lemma sub_le_add (a b : R) : abv (a - b) ≤ abv a + abv b := by
   simpa only [← sub_eq_add_neg, AbsoluteValue.map_neg] using abv.add_le a (-b)
 
-end OrderedCommRing
-
-instance {R S : Type*} [Ring R] [OrderedCommRing S] [Nontrivial R] [IsDomain S] :
-    MulRingNormClass (AbsoluteValue R S) R S :=
+instance [Nontrivial R] [IsDomain S] : MulRingNormClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.subadditiveHomClass,
     AbsoluteValue.monoidWithZeroHomClass with
     map_neg_eq_map := fun f => f.map_neg
     eq_zero_of_map_eq_zero := fun f _ => f.eq_zero.1 }
 
+end OrderedCommRing
+
 section LinearOrderedRing
 
 variable {R S : Type*} [Semiring R] [LinearOrderedRing S] (abv : AbsoluteValue R S)
@@ -322,7 +319,7 @@ lemma abv_nonneg (x) : 0 ≤ abv x := abv_nonneg' x
 
 open Lean Meta Mathlib Meta Positivity Qq in
 /-- The `positivity` extension which identifies expressions of the form `abv a`. -/
-@[positivity (_ : α)]
+@[positivity _]
 def Mathlib.Meta.Positivity.evalAbv : PositivityExt where eval {_ _α} _zα _pα e := do
   let (.app f a) ← whnfR e | throwError "not abv ·"
   let pa' ← mkAppM ``abv_nonneg #[f, a]
@@ -420,14 +417,7 @@ end Ring
 end OrderedRing
 
 section OrderedCommRing
-
-variable {S : Type*} [OrderedCommRing S]
-
-section Ring
-
-variable {R : Type*} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
-
-variable [NoZeroDivisors S]
+variable [OrderedCommRing S] [NoZeroDivisors S] [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abv_neg (a : R) : abv (-a) = abv a :=
   (toAbsoluteValue abv).map_neg a
@@ -437,8 +427,6 @@ theorem abv_sub (a b : R) : abv (a - b) = abv (b - a) :=
   (toAbsoluteValue abv).map_sub a b
 #align is_absolute_value.abv_sub IsAbsoluteValue.abv_sub
 
-end Ring
-
 end OrderedCommRing
 
 section LinearOrderedCommRing
feat(Algebra/Order/AbsoluteValue): Add AbsoluteValue.{le_add,sub_le_add} (#10561)

These triangle inequalities bound abv (a + b) from below and abv (a - b) from above, and are essentially AbsoluteValue.le_sub and .add_le with signs flipped, respectively.

Diff
@@ -240,6 +240,14 @@ protected theorem map_neg (a : R) : abv (-a) = abv a := by
 protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← neg_sub, abv.map_neg]
 #align absolute_value.map_sub AbsoluteValue.map_sub
 
+/-- Bound `abv (a + b)` from below -/
+protected theorem le_add (a b : R) : abv a - abv b ≤ abv (a + b) := by
+  simpa only [tsub_le_iff_right, add_neg_cancel_right, abv.map_neg] using abv.add_le (a + b) (-b)
+
+/-- Bound `abv (a - b)` from above -/
+lemma sub_le_add (a b : R) : abv (a - b) ≤ abv a + abv b := by
+  simpa only [← sub_eq_add_neg, AbsoluteValue.map_neg] using abv.add_le a (-b)
+
 end OrderedCommRing
 
 instance {R S : Type*} [Ring R] [OrderedCommRing S] [Nontrivial R] [IsDomain S] :
chore(NonnegHomClass): rename map_nonneg to apply_nonneg (#10507)

... to avoid conflict with _root_.map_nonneg, see Zulip.

Diff
@@ -63,7 +63,7 @@ instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
 #align absolute_value.mul_hom_class AbsoluteValue.mulHomClass
 
 instance nonnegHomClass : NonnegHomClass (AbsoluteValue R S) R S :=
-  { AbsoluteValue.zeroHomClass (R := R) (S := S) with map_nonneg := fun f => f.nonneg' }
+  { AbsoluteValue.zeroHomClass (R := R) (S := S) with apply_nonneg := fun f => f.nonneg' }
 #align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClass
 
 instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulₛₗ and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulₛₗ successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A →* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulₛₗ not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ a simp lemma instead of the generic map_smulₛₗ. Writing simp [map_smulₛₗ _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -50,22 +50,24 @@ section Semiring
 
 variable {R S : Type*} [Semiring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
-instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S where
+instance funLike : FunLike (AbsoluteValue R S) R S where
   coe f := f.toFun
   coe_injective' f g h := by obtain ⟨⟨_, _⟩, _⟩ := f; obtain ⟨⟨_, _⟩, _⟩ := g; congr
+
+instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S where
   map_zero f := (f.eq_zero' _).2 rfl
 #align absolute_value.zero_hom_class AbsoluteValue.zeroHomClass
 
 instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
-  { AbsoluteValue.zeroHomClass with map_mul := fun f => f.map_mul' }
+  { AbsoluteValue.zeroHomClass (R := R) (S := S) with map_mul := fun f => f.map_mul' }
 #align absolute_value.mul_hom_class AbsoluteValue.mulHomClass
 
 instance nonnegHomClass : NonnegHomClass (AbsoluteValue R S) R S :=
-  { AbsoluteValue.zeroHomClass with map_nonneg := fun f => f.nonneg' }
+  { AbsoluteValue.zeroHomClass (R := R) (S := S) with map_nonneg := fun f => f.nonneg' }
 #align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClass
 
 instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
-  { AbsoluteValue.zeroHomClass with map_add_le_add := fun f => f.add_le' }
+  { AbsoluteValue.zeroHomClass (R := R) (S := S) with map_add_le_add := fun f => f.add_le' }
 #align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClass
 
 @[simp]
chore: Move positivity extensions (#10140)

The goal here is to have access to positivity earlier in the import hierarchy

Diff
@@ -6,6 +6,7 @@ Authors: Mario Carneiro, Anne Baanen
 import Mathlib.Algebra.GroupWithZero.Units.Lemmas
 import Mathlib.Algebra.Order.Field.Defs
 import Mathlib.Algebra.Order.Hom.Basic
+import Mathlib.Algebra.Order.Ring.Abs
 import Mathlib.Algebra.Ring.Regular
 
 #align_import algebra.order.absolute_value from "leanprover-community/mathlib"@"0013240bce820e3096cebb7ccf6d17e3f35f77ca"
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -74,7 +74,7 @@ theorem coe_mk (f : R →ₙ* S) {h₁ h₂ h₃} : (AbsoluteValue.mk f h₁ h
 
 @[ext]
 theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
-  FunLike.ext _ _
+  DFunLike.ext _ _
 #align absolute_value.ext AbsoluteValue.ext
 
 /-- See Note [custom simps projection]. -/
@@ -84,10 +84,10 @@ def Simps.apply (f : AbsoluteValue R S) : R → S :=
 
 initialize_simps_projections AbsoluteValue (toMulHom_toFun → apply)
 
-/-- Helper instance for when there's too many metavariables to apply `FunLike.has_coe_to_fun`
+/-- Helper instance for when there's too many metavariables to apply `DFunLike.has_coe_to_fun`
 directly. -/
 instance : CoeFun (AbsoluteValue R S) fun _ => R → S :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 @[simp]
 theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
chore: fix some cases in names (#7469)

And fix some names in comments where this revealed issues

Diff
@@ -148,7 +148,7 @@ protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c)
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
 #align absolute_value.sub_le AbsoluteValue.sub_le
 
-@[simp high] -- porting note: added `high` to apply it before `abv.eq_zero`
+@[simp high] -- porting note: added `high` to apply it before `AbsoluteValue.eq_zero`
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
   abv.eq_zero.trans sub_eq_zero
 #align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iff
chore: replace anonymous morphism constructors with named fields (#7015)

This makes it easier to refactor the order or inheritance structure of morphisms without having to change all of the anonymous constructors.

This is far from exhaustive.

Diff
@@ -460,8 +460,8 @@ theorem abv_one' : abv 1 = 1 :=
 #align is_absolute_value.abv_one' IsAbsoluteValue.abv_one'
 
 /-- An absolute value as a monoid with zero homomorphism, assuming the target is a semifield. -/
-def abvHom' : R →*₀ S :=
-  ⟨⟨abv, abv_zero abv⟩, abv_one' abv, abv_mul abv⟩
+def abvHom' : R →*₀ S where
+  toFun := abv; map_zero' := abv_zero abv; map_one' := abv_one' abv; map_mul' := abv_mul abv
 #align is_absolute_value.abv_hom' IsAbsoluteValue.abvHom'
 
 end Semiring
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -25,6 +25,8 @@ This file defines a bundled type of absolute values `AbsoluteValue R S`.
    value
 -/
 
+set_option autoImplicit true
+
 
 /-- `AbsoluteValue R S` is the type of absolute values on `R` mapping to `S`:
 the maps that preserve `*`, are nonnegative, positive definite and satisfy the triangle equality. -/
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -28,7 +28,7 @@ This file defines a bundled type of absolute values `AbsoluteValue R S`.
 
 /-- `AbsoluteValue R S` is the type of absolute values on `R` mapping to `S`:
 the maps that preserve `*`, are nonnegative, positive definite and satisfy the triangle equality. -/
-structure AbsoluteValue (R S : Type _) [Semiring R] [OrderedSemiring S] extends R →ₙ* S where
+structure AbsoluteValue (R S : Type*) [Semiring R] [OrderedSemiring S] extends R →ₙ* S where
   /-- The absolute value is nonnegative -/
   nonneg' : ∀ x, 0 ≤ toFun x
   /-- The absolute value is positive definitive -/
@@ -45,7 +45,7 @@ section OrderedSemiring
 
 section Semiring
 
-variable {R S : Type _} [Semiring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Semiring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
 instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S where
   coe f := f.toFun
@@ -140,7 +140,7 @@ end Semiring
 
 section Ring
 
-variable {R S : Type _} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Ring R] [OrderedSemiring S] (abv : AbsoluteValue R S)
 
 protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
@@ -163,7 +163,7 @@ section IsDomain
 
 -- all of these are true for `NoZeroDivisors S`; but it doesn't work smoothly with the
 -- `IsDomain`/`CancelMonoidWithZero` API
-variable {R S : Type _} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 variable [IsDomain S] [Nontrivial R]
 
@@ -208,7 +208,7 @@ end Semiring
 
 section Ring
 
-variable {R S : Type _} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Ring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 protected theorem le_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
   sub_le_iff_le_add.2 <| by simpa using abv.add_le (a - b) b
@@ -220,7 +220,7 @@ end OrderedRing
 
 section OrderedCommRing
 
-variable {R S : Type _} [Ring R] [OrderedCommRing S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Ring R] [OrderedCommRing S] (abv : AbsoluteValue R S)
 
 variable [NoZeroDivisors S]
 
@@ -237,7 +237,7 @@ protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← ne
 
 end OrderedCommRing
 
-instance {R S : Type _} [Ring R] [OrderedCommRing S] [Nontrivial R] [IsDomain S] :
+instance {R S : Type*} [Ring R] [OrderedCommRing S] [Nontrivial R] [IsDomain S] :
     MulRingNormClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.subadditiveHomClass,
     AbsoluteValue.monoidWithZeroHomClass with
@@ -246,7 +246,7 @@ instance {R S : Type _} [Ring R] [OrderedCommRing S] [Nontrivial R] [IsDomain S]
 
 section LinearOrderedRing
 
-variable {R S : Type _} [Semiring R] [LinearOrderedRing S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Semiring R] [LinearOrderedRing S] (abv : AbsoluteValue R S)
 
 /-- `AbsoluteValue.abs` is `abs` as a bundled `AbsoluteValue`. -/
 @[simps]
@@ -267,7 +267,7 @@ end LinearOrderedRing
 
 section LinearOrderedCommRing
 
-variable {R S : Type _} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue R S)
+variable {R S : Type*} [Ring R] [LinearOrderedCommRing S] (abv : AbsoluteValue R S)
 
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   abs_sub_le_iff.2 ⟨abv.le_sub _ _, by rw [abv.map_sub]; apply abv.le_sub⟩
@@ -300,9 +300,9 @@ namespace IsAbsoluteValue
 
 section OrderedSemiring
 
-variable {S : Type _} [OrderedSemiring S]
+variable {S : Type*} [OrderedSemiring S]
 
-variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 lemma abv_nonneg (x) : 0 ≤ abv x := abv_nonneg' x
 #align is_absolute_value.abv_nonneg IsAbsoluteValue.abv_nonneg
@@ -356,7 +356,7 @@ end OrderedSemiring
 
 section LinearOrderedRing
 
-variable {S : Type _} [LinearOrderedRing S]
+variable {S : Type*} [LinearOrderedRing S]
 
 instance abs_isAbsoluteValue : IsAbsoluteValue (abs : S → S) :=
   AbsoluteValue.abs.isAbsoluteValue
@@ -366,11 +366,11 @@ end LinearOrderedRing
 
 section OrderedRing
 
-variable {S : Type _} [OrderedRing S]
+variable {S : Type*} [OrderedRing S]
 
 section Semiring
 
-variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [IsDomain S]
 
@@ -392,7 +392,7 @@ end Semiring
 
 section Ring
 
-variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abv_sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
   simpa [sub_eq_add_neg, add_assoc] using abv_add abv (a - b) (b - c)
@@ -408,11 +408,11 @@ end OrderedRing
 
 section OrderedCommRing
 
-variable {S : Type _} [OrderedCommRing S]
+variable {S : Type*} [OrderedCommRing S]
 
 section Ring
 
-variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 variable [NoZeroDivisors S]
 
@@ -430,11 +430,11 @@ end OrderedCommRing
 
 section LinearOrderedCommRing
 
-variable {S : Type _} [LinearOrderedCommRing S]
+variable {S : Type*} [LinearOrderedCommRing S]
 
 section Ring
 
-variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abs_abv_sub_le_abv_sub (a b : R) : abs (abv a - abv b) ≤ abv (a - b) :=
   (toAbsoluteValue abv).abs_abv_sub_le_abv_sub a b
@@ -446,11 +446,11 @@ end LinearOrderedCommRing
 
 section LinearOrderedField
 
-variable {S : Type _} [LinearOrderedSemifield S]
+variable {S : Type*} [LinearOrderedSemifield S]
 
 section Semiring
 
-variable {R : Type _} [Semiring R] [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [Semiring R] [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abv_one' : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one_of_isLeftRegular <|
@@ -466,7 +466,7 @@ end Semiring
 
 section DivisionSemiring
 
-variable {R : Type _} [DivisionSemiring R] (abv : R → S) [IsAbsoluteValue abv]
+variable {R : Type*} [DivisionSemiring R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abv_inv (a : R) : abv a⁻¹ = (abv a)⁻¹ :=
   map_inv₀ (abvHom' abv) a
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
-
-! This file was ported from Lean 3 source module algebra.order.absolute_value
-! leanprover-community/mathlib commit 0013240bce820e3096cebb7ccf6d17e3f35f77ca
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.GroupWithZero.Units.Lemmas
 import Mathlib.Algebra.Order.Field.Defs
 import Mathlib.Algebra.Order.Hom.Basic
 import Mathlib.Algebra.Ring.Regular
 
+#align_import algebra.order.absolute_value from "leanprover-community/mathlib"@"0013240bce820e3096cebb7ccf6d17e3f35f77ca"
+
 /-!
 # Absolute values
 
chore: tidy various files (#5482)
Diff
@@ -85,7 +85,7 @@ def Simps.apply (f : AbsoluteValue R S) : R → S :=
 
 initialize_simps_projections AbsoluteValue (toMulHom_toFun → apply)
 
-/-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
+/-- Helper instance for when there's too many metavariables to apply `FunLike.has_coe_to_fun`
 directly. -/
 instance : CoeFun (AbsoluteValue R S) fun _ => R → S :=
   FunLike.hasCoeToFun
@@ -260,6 +260,8 @@ protected def abs : AbsoluteValue S S where
   add_le' := abs_add
   map_mul' := abs_mul
 #align absolute_value.abs AbsoluteValue.abs
+#align absolute_value.abs_apply AbsoluteValue.abs_apply
+#align absolute_value.abs_to_mul_hom_apply AbsoluteValue.abs_apply
 
 instance : Inhabited (AbsoluteValue S S) :=
   ⟨AbsoluteValue.abs⟩
@@ -342,6 +344,8 @@ def toAbsoluteValue : AbsoluteValue R S where
   nonneg' := abv_nonneg'
   map_mul' := abv_mul'
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
+#align is_absolute_value.to_absolute_value_apply IsAbsoluteValue.toAbsoluteValue_apply
+#align is_absolute_value.to_absolute_value_to_mul_hom_apply IsAbsoluteValue.toAbsoluteValue_apply
 
 theorem abv_zero : abv 0 = 0 :=
   (toAbsoluteValue abv).map_zero
chore: cleanup a change at porting note (#5243)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -16,9 +16,6 @@ import Mathlib.Algebra.Ring.Regular
 /-!
 # Absolute values
 
-> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
-> Any changes to this file require a corresponding PR to mathlib4.
-
 This file defines a bundled type of absolute values `AbsoluteValue R S`.
 
 ## Main definitions
feat: port Algebra.Order.AbsoluteValue again (#3448)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
 
 ! This file was ported from Lean 3 source module algebra.order.absolute_value
-! leanprover-community/mathlib commit fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e
+! leanprover-community/mathlib commit 0013240bce820e3096cebb7ccf6d17e3f35f77ca
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathlib.Algebra.Ring.Regular
 /-!
 # Absolute values
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines a bundled type of absolute values `AbsoluteValue R S`.
 
 ## Main definitions
@@ -42,8 +45,7 @@ structure AbsoluteValue (R S : Type _) [Semiring R] [OrderedSemiring S] extends
 
 namespace AbsoluteValue
 
--- Porting note: Removing nolints.
--- attribute [nolint doc_blame] AbsoluteValue.toMulHom
+attribute [nolint docBlame] AbsoluteValue.toMulHom
 
 section OrderedSemiring
 
@@ -53,10 +55,7 @@ variable {R S : Type _} [Semiring R] [OrderedSemiring S] (abv : AbsoluteValue R
 
 instance zeroHomClass : ZeroHomClass (AbsoluteValue R S) R S where
   coe f := f.toFun
-  coe_injective' f g h := by
-    obtain ⟨⟨_, _⟩, _⟩ := f
-    obtain ⟨⟨_, _⟩, _⟩ := g
-    congr
+  coe_injective' f g h := by obtain ⟨⟨_, _⟩, _⟩ := f; obtain ⟨⟨_, _⟩, _⟩ := g; congr
   map_zero f := (f.eq_zero' _).2 rfl
 #align absolute_value.zero_hom_class AbsoluteValue.zeroHomClass
 
@@ -83,20 +82,19 @@ theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
 #align absolute_value.ext AbsoluteValue.ext
 
 /-- See Note [custom simps projection]. -/
-def Simps.apply (f : AbsoluteValue R S) : R → S := f
+def Simps.apply (f : AbsoluteValue R S) : R → S :=
+  f
 #align absolute_value.simps.apply AbsoluteValue.Simps.apply
 
-initialize_simps_projections AbsoluteValue (toFun → apply)
+initialize_simps_projections AbsoluteValue (toMulHom_toFun → apply)
 
--- Porting note:
--- These helper instances are unhelpful in Lean 4, so omitting:
--- /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
--- directly. -/
--- instance : CoeFun (AbsoluteValue R S) fun f => R → S :=
---   FunLike.hasCoeToFun
+/-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
+directly. -/
+instance : CoeFun (AbsoluteValue R S) fun _ => R → S :=
+  FunLike.hasCoeToFun
 
 @[simp]
-theorem coe_toMulHom : abv.toMulHom = abv :=
+theorem coe_toMulHom : ⇑abv.toMulHom = abv :=
   rfl
 #align absolute_value.coe_to_mul_hom AbsoluteValue.coe_toMulHom
 
@@ -113,11 +111,10 @@ protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
   abv.add_le' x y
 #align absolute_value.add_le AbsoluteValue.add_le
 
--- Porting note: Removed since `map_mul` proves the theorem
---@[simp]
---protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y := map_mul _ _ _
-  --abv.map_mul' x y
-#align absolute_value.map_mul map_mul
+-- porting note: was `@[simp]` but `simp` can prove it
+protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
+  abv.map_mul' x y
+#align absolute_value.map_mul AbsoluteValue.map_mul
 
 protected theorem ne_zero_iff {x : R} : abv x ≠ 0 ↔ x ≠ 0 :=
   abv.eq_zero.not
@@ -137,14 +134,13 @@ protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
 #align absolute_value.ne_zero AbsoluteValue.ne_zero
 
 theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
-  h <| by simp [← map_mul]
+  h <| by simp [← abv.map_mul]
 #align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
 
--- Porting note: Removed since `map_zero` proves the theorem
---@[simp]
---protected theorem map_zero : abv 0 = 0 := map_zero _
-  --abv.eq_zero.2 rfl
-#align absolute_value.map_zero map_zero
+-- porting note: was `@[simp]` but `simp` can prove it
+protected theorem map_zero : abv 0 = 0 :=
+  abv.eq_zero.2 rfl
+#align absolute_value.map_zero AbsoluteValue.map_zero
 
 end Semiring
 
@@ -156,7 +152,7 @@ protected theorem sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c)
   simpa [sub_eq_add_neg, add_assoc] using abv.add_le (a - b) (b - c)
 #align absolute_value.sub_le AbsoluteValue.sub_le
 
-@[simp (high)]
+@[simp high] -- porting note: added `high` to apply it before `abv.eq_zero`
 theorem map_sub_eq_zero_iff (a b : R) : abv (a - b) = 0 ↔ a = b :=
   abv.eq_zero.trans sub_eq_zero
 #align absolute_value.map_sub_eq_zero_iff AbsoluteValue.map_sub_eq_zero_iff
@@ -177,13 +173,15 @@ variable {R S : Type _} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
 
 variable [IsDomain S] [Nontrivial R]
 
-@[simp (high)]
+-- porting note: was `@[simp]` but `simp` can prove it
 protected theorem map_one : abv 1 = 1 :=
   abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.ne_zero one_ne_zero).left
 #align absolute_value.map_one AbsoluteValue.map_one
 
-instance : MonoidWithZeroHomClass (AbsoluteValue R S) R S :=
-  { AbsoluteValue.mulHomClass with map_zero := fun f => map_zero f, map_one := fun f => f.map_one }
+instance monoidWithZeroHomClass : MonoidWithZeroHomClass (AbsoluteValue R S) R S :=
+  { AbsoluteValue.mulHomClass with
+    map_zero := fun f => f.map_zero
+    map_one := fun f => f.map_one }
 
 /-- Absolute values from a nontrivial `R` to a linear ordered ring preserve `*`, `0` and `1`. -/
 def toMonoidWithZeroHom : R →*₀ S :=
@@ -205,11 +203,10 @@ theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
   rfl
 #align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom
 
--- Porting note: Removed since `map_zero` proves the theorem
---@[simp]
---protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n := map_pow _ _ _
-  --abv.toMonoidHom.map_pow a n
-#align absolute_value.map_pow map_pow
+-- porting note: was `@[simp]` but `simp` can prove it
+protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
+  abv.toMonoidHom.map_pow a n
+#align absolute_value.map_pow AbsoluteValue.map_pow
 
 end IsDomain
 
@@ -237,7 +234,7 @@ variable [NoZeroDivisors S]
 protected theorem map_neg (a : R) : abv (-a) = abv a := by
   by_cases ha : a = 0; · simp [ha]
   refine'
-    (mul_self_eq_mul_self_iff.mp (by rw [← map_mul abv, neg_mul_neg, map_mul abv])).resolve_right _
+    (mul_self_eq_mul_self_iff.mp (by rw [← abv.map_mul, neg_mul_neg, abv.map_mul])).resolve_right _
   exact ((neg_lt_zero.mpr (abv.pos ha)).trans (abv.pos (neg_ne_zero.mpr ha))).ne'
 #align absolute_value.map_neg AbsoluteValue.map_neg
 
@@ -246,6 +243,13 @@ protected theorem map_sub (a b : R) : abv (a - b) = abv (b - a) := by rw [← ne
 
 end OrderedCommRing
 
+instance {R S : Type _} [Ring R] [OrderedCommRing S] [Nontrivial R] [IsDomain S] :
+    MulRingNormClass (AbsoluteValue R S) R S :=
+  { AbsoluteValue.subadditiveHomClass,
+    AbsoluteValue.monoidWithZeroHomClass with
+    map_neg_eq_map := fun f => f.map_neg
+    eq_zero_of_map_eq_zero := fun f _ => f.eq_zero.1 }
+
 section LinearOrderedRing
 
 variable {R S : Type _} [Semiring R] [LinearOrderedRing S] (abv : AbsoluteValue R S)
@@ -259,8 +263,6 @@ protected def abs : AbsoluteValue S S where
   add_le' := abs_add
   map_mul' := abs_mul
 #align absolute_value.abs AbsoluteValue.abs
-#align absolute_value.abs_apply AbsoluteValue.abs_apply
-#align absolute_value.abs_to_mul_hom_apply AbsoluteValue.abs_apply
 
 instance : Inhabited (AbsoluteValue S S) :=
   ⟨AbsoluteValue.abs⟩
@@ -284,6 +286,7 @@ end AbsoluteValue
 
 /-- A function `f` is an absolute value if it is nonnegative, zero only at 0, additive, and
 multiplicative.
+
 See also the type `AbsoluteValue` which represents a bundled version of absolute values.
 -/
 class IsAbsoluteValue {S} [OrderedSemiring S] {R} [Semiring R] (f : R → S) : Prop where
@@ -326,8 +329,7 @@ lemma abv_mul (x y) : abv (x * y) = abv x * abv y := abv_mul' x y
 #align is_absolute_value.abv_mul IsAbsoluteValue.abv_mul
 
 /-- A bundled absolute value is an absolute value. -/
-instance _root_.AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) :
-    IsAbsoluteValue abv where
+instance _root_.AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) : IsAbsoluteValue abv where
   abv_nonneg' := abv.nonneg
   abv_eq_zero' := abv.eq_zero
   abv_add' := abv.add_le
@@ -343,11 +345,9 @@ def toAbsoluteValue : AbsoluteValue R S where
   nonneg' := abv_nonneg'
   map_mul' := abv_mul'
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
-#align is_absolute_value.to_absolute_value_apply IsAbsoluteValue.toAbsoluteValue_apply
-#align is_absolute_value.to_absolute_value_to_mul_hom_apply IsAbsoluteValue.toAbsoluteValue_apply
 
 theorem abv_zero : abv 0 = 0 :=
-  map_zero (toAbsoluteValue abv)
+  (toAbsoluteValue abv).map_zero
 #align is_absolute_value.abv_zero IsAbsoluteValue.abv_zero
 
 theorem abv_pos {a : R} : 0 < abv a ↔ a ≠ 0 :=
@@ -387,7 +387,7 @@ def abvHom [Nontrivial R] : R →*₀ S :=
 
 theorem abv_pow [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv] (a : R) (n : ℕ) :
     abv (a ^ n) = abv a ^ n :=
-  map_pow (toAbsoluteValue abv) a n
+  (toAbsoluteValue abv).map_pow a n
 #align is_absolute_value.abv_pow IsAbsoluteValue.abv_pow
 
 end Semiring
feat: assorted positivity extensions (#3907)

Positivity extensions for NonnegHomClass (this includes AbsoluteValue and Seminorm), IsAbsoluteValue, norm, the NNReal-to-Real coercion, factorials, square roots, distance (in a metric space), and diameter.

I tried to do these "properly" using Qq but I hit various errors I couldn't fix -- see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Qq.20doesn't.20know.20that.20two.20things.20have.20the.20same.20type for some examples.

cc @dwrensha

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -308,6 +308,14 @@ variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 lemma abv_nonneg (x) : 0 ≤ abv x := abv_nonneg' x
 #align is_absolute_value.abv_nonneg IsAbsoluteValue.abv_nonneg
 
+open Lean Meta Mathlib Meta Positivity Qq in
+/-- The `positivity` extension which identifies expressions of the form `abv a`. -/
+@[positivity (_ : α)]
+def Mathlib.Meta.Positivity.evalAbv : PositivityExt where eval {_ _α} _zα _pα e := do
+  let (.app f a) ← whnfR e | throwError "not abv ·"
+  let pa' ← mkAppM ``abv_nonneg #[f, a]
+  pure (.nonnegative pa')
+
 lemma abv_eq_zero {x} : abv x = 0 ↔ x = 0 := abv_eq_zero'
 #align is_absolute_value.abv_eq_zero IsAbsoluteValue.abv_eq_zero
 
chore: drop some unnecessary imports (#3869)
Diff
@@ -11,8 +11,6 @@ Authors: Mario Carneiro, Anne Baanen
 import Mathlib.Algebra.GroupWithZero.Units.Lemmas
 import Mathlib.Algebra.Order.Field.Defs
 import Mathlib.Algebra.Order.Hom.Basic
-import Mathlib.Algebra.Order.Ring.Abs
-import Mathlib.Algebra.Ring.Commute
 import Mathlib.Algebra.Ring.Regular
 
 /-!
feat: simps uses fields of parent structures (#2042)
  • initialize_simps_projections now by default generates all projections of all parent structures, and doesn't generate the projections to those parent structures.
  • You can also rename a nested projection directly, without having to specify intermediate parent structures
  • Added the option to turn the default behavior off (done in e.g. TwoPointed)

Internal changes:

  • Move most declarations to the Simps namespace, and shorten their names
  • Restructure ParsedProjectionData to avoid the bug reported here (and to another bug where it seemed that the wrong data was inserted in ParsedProjectionData, but it was hard to minimize because of all the crashes). If we manage to fix the bug in that Zulip thread, I'll see if I can track down the other bug in commit 97454284

Co-authored-by: Johan Commelin <johan@commelin.net>

Diff
@@ -88,7 +88,7 @@ theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
 def Simps.apply (f : AbsoluteValue R S) : R → S := f
 #align absolute_value.simps.apply AbsoluteValue.Simps.apply
 
-initialize_simps_projections AbsoluteValue (toMulHom_toFun → apply)
+initialize_simps_projections AbsoluteValue (toFun → apply)
 
 -- Porting note:
 -- These helper instances are unhelpful in Lean 4, so omitting:
@@ -262,7 +262,7 @@ protected def abs : AbsoluteValue S S where
   map_mul' := abs_mul
 #align absolute_value.abs AbsoluteValue.abs
 #align absolute_value.abs_apply AbsoluteValue.abs_apply
-#align absolute_value.abs_to_mul_hom_apply AbsoluteValue.abs_toMulHom_apply
+#align absolute_value.abs_to_mul_hom_apply AbsoluteValue.abs_apply
 
 instance : Inhabited (AbsoluteValue S S) :=
   ⟨AbsoluteValue.abs⟩
@@ -338,7 +338,7 @@ def toAbsoluteValue : AbsoluteValue R S where
   map_mul' := abv_mul'
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
 #align is_absolute_value.to_absolute_value_apply IsAbsoluteValue.toAbsoluteValue_apply
-#align is_absolute_value.to_absolute_value_to_mul_hom_apply IsAbsoluteValue.toAbsoluteValue_toMulHom_apply
+#align is_absolute_value.to_absolute_value_to_mul_hom_apply IsAbsoluteValue.toAbsoluteValue_apply
 
 theorem abv_zero : abv 0 = 0 :=
   map_zero (toAbsoluteValue abv)
feat: define UniformSpace.ofFun (#2511)

Forward-port leanprover-community/mathlib#18495

Diff
@@ -47,8 +47,6 @@ namespace AbsoluteValue
 -- Porting note: Removing nolints.
 -- attribute [nolint doc_blame] AbsoluteValue.toMulHom
 
--- initialize_simps_projections AbsoluteValue (to_mul_hom_to_fun → apply)
-
 section OrderedSemiring
 
 section Semiring
@@ -86,6 +84,12 @@ theorem ext ⦃f g : AbsoluteValue R S⦄ : (∀ x, f x = g x) → f = g :=
   FunLike.ext _ _
 #align absolute_value.ext AbsoluteValue.ext
 
+/-- See Note [custom simps projection]. -/
+def Simps.apply (f : AbsoluteValue R S) : R → S := f
+#align absolute_value.simps.apply AbsoluteValue.Simps.apply
+
+initialize_simps_projections AbsoluteValue (toMulHom_toFun → apply)
+
 -- Porting note:
 -- These helper instances are unhelpful in Lean 4, so omitting:
 -- /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
@@ -249,7 +253,7 @@ section LinearOrderedRing
 variable {R S : Type _} [Semiring R] [LinearOrderedRing S] (abv : AbsoluteValue R S)
 
 /-- `AbsoluteValue.abs` is `abs` as a bundled `AbsoluteValue`. -/
---@[simps] -- Porting note: Removed simps lemma
+@[simps]
 protected def abs : AbsoluteValue S S where
   toFun := abs
   nonneg' := abs_nonneg
@@ -257,6 +261,8 @@ protected def abs : AbsoluteValue S S where
   add_le' := abs_add
   map_mul' := abs_mul
 #align absolute_value.abs AbsoluteValue.abs
+#align absolute_value.abs_apply AbsoluteValue.abs_apply
+#align absolute_value.abs_to_mul_hom_apply AbsoluteValue.abs_toMulHom_apply
 
 instance : Inhabited (AbsoluteValue S S) :=
   ⟨AbsoluteValue.abs⟩
@@ -323,7 +329,7 @@ instance _root_.AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) :
 #align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValue
 
 /-- Convert an unbundled `IsAbsoluteValue` to a bundled `AbsoluteValue`. -/
---@[simps] -- Porting note: Removed simps lemma
+@[simps]
 def toAbsoluteValue : AbsoluteValue R S where
   toFun := abv
   add_le' := abv_add'
@@ -331,6 +337,8 @@ def toAbsoluteValue : AbsoluteValue R S where
   nonneg' := abv_nonneg'
   map_mul' := abv_mul'
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
+#align is_absolute_value.to_absolute_value_apply IsAbsoluteValue.toAbsoluteValue_apply
+#align is_absolute_value.to_absolute_value_to_mul_hom_apply IsAbsoluteValue.toAbsoluteValue_toMulHom_apply
 
 theorem abv_zero : abv 0 = 0 :=
   map_zero (toAbsoluteValue abv)
chore: make abv explicit in IsAbsoluteValue (#1398)
Diff
@@ -284,13 +284,13 @@ See also the type `AbsoluteValue` which represents a bundled version of absolute
 -/
 class IsAbsoluteValue {S} [OrderedSemiring S] {R} [Semiring R] (f : R → S) : Prop where
   /-- The absolute value is nonnegative -/
-  abv_nonneg : ∀ x, 0 ≤ f x
+  abv_nonneg' : ∀ x, 0 ≤ f x
   /-- The absolute value is positive definitive -/
-  abv_eq_zero : ∀ {x}, f x = 0 ↔ x = 0
+  abv_eq_zero' : ∀ {x}, f x = 0 ↔ x = 0
   /-- The absolute value satisfies the triangle inequality -/
-  abv_add : ∀ x y, f (x + y) ≤ f x + f y
+  abv_add' : ∀ x y, f (x + y) ≤ f x + f y
   /-- The absolute value is multiplicative -/
-  abv_mul : ∀ x y, f (x * y) = f x * f y
+  abv_mul' : ∀ x y, f (x * y) = f x * f y
 #align is_absolute_value IsAbsoluteValue
 
 namespace IsAbsoluteValue
@@ -301,23 +301,35 @@ variable {S : Type _} [OrderedSemiring S]
 
 variable {R : Type _} [Semiring R] (abv : R → S) [IsAbsoluteValue abv]
 
+lemma abv_nonneg (x) : 0 ≤ abv x := abv_nonneg' x
+#align is_absolute_value.abv_nonneg IsAbsoluteValue.abv_nonneg
+
+lemma abv_eq_zero {x} : abv x = 0 ↔ x = 0 := abv_eq_zero'
+#align is_absolute_value.abv_eq_zero IsAbsoluteValue.abv_eq_zero
+
+lemma abv_add (x y) : abv (x + y) ≤ abv x + abv y := abv_add' x y
+#align is_absolute_value.abv_add IsAbsoluteValue.abv_add
+
+lemma abv_mul (x y) : abv (x * y) = abv x * abv y := abv_mul' x y
+#align is_absolute_value.abv_mul IsAbsoluteValue.abv_mul
+
 /-- A bundled absolute value is an absolute value. -/
 instance _root_.AbsoluteValue.isAbsoluteValue (abv : AbsoluteValue R S) :
     IsAbsoluteValue abv where
-  abv_nonneg := abv.nonneg
-  abv_eq_zero := abv.eq_zero
-  abv_add := abv.add_le
-  abv_mul := abv.map_mul
+  abv_nonneg' := abv.nonneg
+  abv_eq_zero' := abv.eq_zero
+  abv_add' := abv.add_le
+  abv_mul' := abv.map_mul
 #align absolute_value.is_absolute_value AbsoluteValue.isAbsoluteValue
 
 /-- Convert an unbundled `IsAbsoluteValue` to a bundled `AbsoluteValue`. -/
 --@[simps] -- Porting note: Removed simps lemma
 def toAbsoluteValue : AbsoluteValue R S where
   toFun := abv
-  add_le' := abv_add
-  eq_zero' _ := abv_eq_zero
-  nonneg' := abv_nonneg
-  map_mul' := abv_mul
+  add_le' := abv_add'
+  eq_zero' _ := abv_eq_zero'
+  nonneg' := abv_nonneg'
+  map_mul' := abv_mul'
 #align is_absolute_value.to_absolute_value IsAbsoluteValue.toAbsoluteValue
 
 theorem abv_zero : abv 0 = 0 :=
@@ -371,7 +383,7 @@ section Ring
 variable {R : Type _} [Ring R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abv_sub_le (a b c : R) : abv (a - c) ≤ abv (a - b) + abv (b - c) := by
-  simpa [sub_eq_add_neg, add_assoc] using abv_add (a - b) (b - c)
+  simpa [sub_eq_add_neg, add_assoc] using abv_add abv (a - b) (b - c)
 #align is_absolute_value.abv_sub_le IsAbsoluteValue.abv_sub_le
 
 theorem sub_abv_le_abv_sub (a b : R) : abv a - abv b ≤ abv (a - b) :=
@@ -435,7 +447,7 @@ theorem abv_one' : abv 1 = 1 :=
 
 /-- An absolute value as a monoid with zero homomorphism, assuming the target is a semifield. -/
 def abvHom' : R →*₀ S :=
-  ⟨⟨abv, abv_zero abv⟩, abv_one' abv, abv_mul⟩
+  ⟨⟨abv, abv_zero abv⟩, abv_one' abv, abv_mul abv⟩
 #align is_absolute_value.abv_hom' IsAbsoluteValue.abvHom'
 
 end Semiring
chore: fix more casing errors per naming scheme (#1232)

I've avoided anything under Tactic or test.

In correcting the names, I found Option.isNone_iff_eq_none duplicated between Std and Mathlib, so the Mathlib one has been removed.

Co-authored-by: Reid Barton <rwbarton@gmail.com>

Diff
@@ -134,9 +134,9 @@ protected theorem ne_zero {x : R} (hx : x ≠ 0) : abv x ≠ 0 :=
   (abv.pos hx).ne'
 #align absolute_value.ne_zero AbsoluteValue.ne_zero
 
-theorem map_one_of_is_regular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
+theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
   h <| by simp [← map_mul]
-#align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_is_regular
+#align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular
 
 -- Porting note: Removed since `map_zero` proves the theorem
 --@[simp]
@@ -177,7 +177,7 @@ variable [IsDomain S] [Nontrivial R]
 
 @[simp (high)]
 protected theorem map_one : abv 1 = 1 :=
-  abv.map_one_of_is_regular (isRegular_of_ne_zero <| abv.ne_zero one_ne_zero).left
+  abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.ne_zero one_ne_zero).left
 #align absolute_value.map_one AbsoluteValue.map_one
 
 instance : MonoidWithZeroHomClass (AbsoluteValue R S) R S :=
@@ -429,7 +429,7 @@ section Semiring
 variable {R : Type _} [Semiring R] [Nontrivial R] (abv : R → S) [IsAbsoluteValue abv]
 
 theorem abv_one' : abv 1 = 1 :=
-  (toAbsoluteValue abv).map_one_of_is_regular <|
+  (toAbsoluteValue abv).map_one_of_isLeftRegular <|
     (isRegular_of_ne_zero <| (toAbsoluteValue abv).ne_zero one_ne_zero).left
 #align is_absolute_value.abv_one' IsAbsoluteValue.abv_one'
 
chore: Fix capitalisation in algebra.order.hom.basic (#1237)

The port introduced more caps than necessary in the names. "nonnegative", "subadditive", "submultiplicative" and "nonarchimedean" are all one word each, so shouldn't get caps in the middle. SubAdditive and SubMultiplicative are particularly dangerous in my opinion, because they should be interpreted as saying that Sub is additive/multiplicative.

Co-authored-by: Reid Barton <rwbarton@gmail.com>

Diff
@@ -68,11 +68,11 @@ instance mulHomClass : MulHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_mul := fun f => f.map_mul' }
 #align absolute_value.mul_hom_class AbsoluteValue.mulHomClass
 
-instance nonnegHomClass : NonNegHomClass (AbsoluteValue R S) R S :=
+instance nonnegHomClass : NonnegHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_nonneg := fun f => f.nonneg' }
 #align absolute_value.nonneg_hom_class AbsoluteValue.nonnegHomClass
 
-instance subadditiveHomClass : SubAdditiveHomClass (AbsoluteValue R S) R S :=
+instance subadditiveHomClass : SubadditiveHomClass (AbsoluteValue R S) R S :=
   { AbsoluteValue.zeroHomClass with map_add_le_add := fun f => f.add_le' }
 #align absolute_value.subadditive_hom_class AbsoluteValue.subadditiveHomClass
 
chore: fix casing per naming scheme (#1183)

Fix a lot of wrong casing mostly in the docstrings but also sometimes in def/theorem names. E.g. fin 2 --> Fin 2, add_monoid_hom --> AddMonoidHom

Remove \n from to_additive docstrings that were inserted by mathport.

Move files and directories with Gcd and Smul to GCD and SMul

Diff
@@ -24,7 +24,7 @@ This file defines a bundled type of absolute values `AbsoluteValue R S`.
 
  * `AbsoluteValue R S` is the type of absolute values on `R` mapping to `S`.
  * `AbsoluteValue.abs` is the "standard" absolute value on `S`, mapping negative `x` to `-x`.
- * `AbsoluteValue.to_monoid_with_zero_hom`: absolute values mapping to a
+ * `AbsoluteValue.toMonoidWithZeroHom`: absolute values mapping to a
    linear ordered field preserve `0`, `*` and `1`
  * `IsAbsoluteValue`: a type class stating that `f : β → α` satisfies the axioms of an absolute
    value
@@ -354,7 +354,7 @@ theorem abv_one [Nontrivial R] : abv 1 = 1 :=
   (toAbsoluteValue abv).map_one
 #align is_absolute_value.abv_one IsAbsoluteValue.abv_one
 
-/-- `abv` as a `monoid_with_zero_hom`. -/
+/-- `abv` as a `MonoidWithZeroHom`. -/
 def abvHom [Nontrivial R] : R →*₀ S :=
   (toAbsoluteValue abv).toMonoidWithZeroHom
 #align is_absolute_value.abv_hom IsAbsoluteValue.abvHom
chore: add source headers to ported theory files (#1094)

The script used to do this is included. The yaml file was obtained from https://raw.githubusercontent.com/wiki/leanprover-community/mathlib/mathlib4-port-status.md

Diff
@@ -2,6 +2,11 @@
 Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Anne Baanen
+
+! This file was ported from Lean 3 source module algebra.order.absolute_value
+! leanprover-community/mathlib commit fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e
+! Please do not edit these lines, except to modify the commit id
+! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.GroupWithZero.Units.Lemmas
 import Mathlib.Algebra.Order.Field.Defs

Dependencies 2 + 121

122 files ported (98.4%)
48730 lines ported (99.7%)
Show graph

The unported dependencies are