analysis.normed.ring.seminormMathlib.Analysis.Normed.Ring.Seminorm

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -206,10 +206,12 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ
 instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
+#print RingNorm.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p :=
   rfl
 #align ring_norm.to_fun_eq_coe RingNorm.toFun_eq_coe
+-/
 
 #print RingNorm.ext /-
 @[ext]
@@ -320,10 +322,12 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ
 instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
+#print MulRingNorm.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p :=
   rfl
 #align mul_ring_norm.to_fun_eq_coe MulRingNorm.toFun_eq_coe
+-/
 
 #print MulRingNorm.ext /-
 @[ext]
Diff
@@ -100,7 +100,7 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`. -/
 instance : CoeFun (RingSeminorm R) fun _ => R → ℝ :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 #print RingSeminorm.toFun_eq_coe /-
 @[simp]
@@ -112,7 +112,7 @@ theorem toFun_eq_coe (p : RingSeminorm R) : p.toFun = p :=
 #print RingSeminorm.ext /-
 @[ext]
 theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align ring_seminorm.ext RingSeminorm.ext
 -/
 
@@ -121,7 +121,7 @@ instance : Zero (RingSeminorm R) :=
 
 #print RingSeminorm.eq_zero_iff /-
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iff
 -/
 
@@ -214,7 +214,7 @@ theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p :=
 #print RingNorm.ext /-
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align ring_norm.ext RingNorm.ext
 -/
 
@@ -256,7 +256,7 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`. -/
 instance : CoeFun (MulRingSeminorm R) fun _ => R → ℝ :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 #print MulRingSeminorm.toFun_eq_coe /-
 @[simp]
@@ -268,7 +268,7 @@ theorem toFun_eq_coe (p : MulRingSeminorm R) : p.toFun = p :=
 #print MulRingSeminorm.ext /-
 @[ext]
 theorem ext {p q : MulRingSeminorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align mul_ring_seminorm.ext MulRingSeminorm.ext
 -/
 
@@ -328,7 +328,7 @@ theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p :=
 #print MulRingNorm.ext /-
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align mul_ring_norm.ext MulRingNorm.ext
 -/
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 María Inés de Frutos-Fernández. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: María Inés de Frutos-Fernández, Yaël Dillies
 -/
-import Mathbin.Analysis.Normed.Field.Basic
+import Analysis.Normed.Field.Basic
 
 #align_import analysis.normed.ring.seminorm from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
 
Diff
@@ -49,7 +49,7 @@ variable {F R S : Type _} (x y : R) (r : ℝ)
 /-- A seminorm on a ring `R` is a function `f : R → ℝ` that preserves zero, takes nonnegative
   values, is subadditive and submultiplicative and such that `f (-x) = f x` for all `x ∈ R`. -/
 structure RingSeminorm (R : Type _) [NonUnitalNonAssocRing R] extends AddGroupSeminorm R where
-  mul_le' : ∀ x y : R, to_fun (x * y) ≤ to_fun x * to_fun y
+  hMul_le' : ∀ x y : R, to_fun (x * y) ≤ to_fun x * to_fun y
 #align ring_seminorm RingSeminorm
 -/
 
@@ -93,7 +93,7 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ
   coe_injective' f g h := by cases f <;> cases g <;> congr
   map_zero f := f.map_zero'
   map_add_le_add f := f.add_le'
-  map_mul_le_mul f := f.mul_le'
+  map_hMul_le_hMul f := f.hMul_le'
   map_neg_eq_map f := f.neg'
 #align ring_seminorm.ring_seminorm_class RingSeminorm.ringSeminormClass
 -/
@@ -117,7 +117,7 @@ theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
 -/
 
 instance : Zero (RingSeminorm R) :=
-  ⟨{ AddGroupSeminorm.hasZero.zero with mul_le' := fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
+  ⟨{ AddGroupSeminorm.hasZero.zero with hMul_le' := fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
 
 #print RingSeminorm.eq_zero_iff /-
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
@@ -137,7 +137,7 @@ instance : Inhabited (RingSeminorm R) :=
 every other element. -/
 instance [DecidableEq R] : One (RingSeminorm R) :=
   ⟨{ (1 : AddGroupSeminorm R) with
-      mul_le' := fun x y => by
+      hMul_le' := fun x y => by
         by_cases h : x * y = 0
         ·
           refine' (if_pos h).trans_le (mul_nonneg _ _) <;>
@@ -181,7 +181,7 @@ end RingSeminorm
 def normRingSeminorm (R : Type _) [NonUnitalSeminormedRing R] : RingSeminorm R :=
   { normAddGroupSeminorm R with
     toFun := norm
-    mul_le' := norm_mul_le }
+    hMul_le' := norm_mul_le }
 #align norm_ring_seminorm normRingSeminorm
 -/
 
@@ -196,7 +196,7 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ
   coe_injective' f g h := by cases f <;> cases g <;> congr
   map_zero f := f.map_zero'
   map_add_le_add f := f.add_le'
-  map_mul_le_mul f := f.mul_le'
+  map_hMul_le_hMul f := f.hMul_le'
   map_neg_eq_map f := f.neg'
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero'
 #align ring_norm.ring_norm_class RingNorm.ringNormClass
@@ -249,7 +249,7 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ
   map_zero f := f.map_zero'
   map_one f := f.map_one'
   map_add_le_add f := f.add_le'
-  map_mul f := f.map_mul'
+  map_hMul f := f.map_mul'
   map_neg_eq_map f := f.neg'
 #align mul_ring_seminorm.mul_ring_seminorm_class MulRingSeminorm.mulRingSeminormClass
 -/
@@ -310,7 +310,7 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ
   map_zero f := f.map_zero'
   map_one f := f.map_one'
   map_add_le_add f := f.add_le'
-  map_mul f := f.map_mul'
+  map_hMul f := f.map_mul'
   map_neg_eq_map f := f.neg'
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero'
 #align mul_ring_norm.mul_ring_norm_class MulRingNorm.mulRingNormClass
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 María Inés de Frutos-Fernández. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: María Inés de Frutos-Fernández, Yaël Dillies
-
-! This file was ported from Lean 3 source module analysis.normed.ring.seminorm
-! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Normed.Field.Basic
 
+#align_import analysis.normed.ring.seminorm from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
+
 /-!
 # Seminorms and norms on rings
 
Diff
@@ -105,25 +105,33 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ
 instance : CoeFun (RingSeminorm R) fun _ => R → ℝ :=
   FunLike.hasCoeToFun
 
+#print RingSeminorm.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe (p : RingSeminorm R) : p.toFun = p :=
   rfl
 #align ring_seminorm.to_fun_eq_coe RingSeminorm.toFun_eq_coe
+-/
 
+#print RingSeminorm.ext /-
 @[ext]
 theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
 #align ring_seminorm.ext RingSeminorm.ext
+-/
 
 instance : Zero (RingSeminorm R) :=
   ⟨{ AddGroupSeminorm.hasZero.zero with mul_le' := fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
 
+#print RingSeminorm.eq_zero_iff /-
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
   FunLike.ext_iff
 #align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iff
+-/
 
+#print RingSeminorm.ne_zero_iff /-
 theorem ne_zero_iff {p : RingSeminorm R} : p ≠ 0 ↔ ∃ x, p x ≠ 0 := by simp [eq_zero_iff]
 #align ring_seminorm.ne_zero_iff RingSeminorm.ne_zero_iff
+-/
 
 instance : Inhabited (RingSeminorm R) :=
   ⟨0⟩
@@ -142,10 +150,12 @@ instance [DecidableEq R] : One (RingSeminorm R) :=
         · change ite _ _ _ ≤ ite _ _ _ * ite _ _ _
           simp only [if_false, h, left_ne_zero_of_mul h, right_ne_zero_of_mul h, mul_one] }⟩
 
+#print RingSeminorm.apply_one /-
 @[simp]
 theorem apply_one [DecidableEq R] (x : R) : (1 : RingSeminorm R) x = if x = 0 then 0 else 1 :=
   rfl
 #align ring_seminorm.apply_one RingSeminorm.apply_one
+-/
 
 end NonUnitalRing
 
@@ -153,6 +163,7 @@ section Ring
 
 variable [Ring R] (p : RingSeminorm R)
 
+#print RingSeminorm.seminorm_one_eq_one_iff_ne_zero /-
 theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :=
   by
   refine' ⟨fun h => ne_zero_iff.mpr ⟨1, by rw [h]; exact one_ne_zero⟩, fun h => _⟩
@@ -162,6 +173,7 @@ theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :
   · refine' hp.antisymm ((le_mul_iff_one_le_left hp0).1 _)
     simpa only [one_mul] using map_mul_le_mul p (1 : R) _
 #align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zero
+-/
 
 end Ring
 
@@ -202,10 +214,12 @@ theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p :=
   rfl
 #align ring_norm.to_fun_eq_coe RingNorm.toFun_eq_coe
 
+#print RingNorm.ext /-
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
 #align ring_norm.ext RingNorm.ext
+-/
 
 variable (R)
 
@@ -214,10 +228,12 @@ variable (R)
 instance [DecidableEq R] : One (RingNorm R) :=
   ⟨{ (1 : RingSeminorm R), (1 : AddGroupNorm R) with }⟩
 
+#print RingNorm.apply_one /-
 @[simp]
 theorem apply_one [DecidableEq R] (x : R) : (1 : RingNorm R) x = if x = 0 then 0 else 1 :=
   rfl
 #align ring_norm.apply_one RingNorm.apply_one
+-/
 
 instance [DecidableEq R] : Inhabited (RingNorm R) :=
   ⟨1⟩
@@ -245,15 +261,19 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ
 instance : CoeFun (MulRingSeminorm R) fun _ => R → ℝ :=
   FunLike.hasCoeToFun
 
+#print MulRingSeminorm.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe (p : MulRingSeminorm R) : p.toFun = p :=
   rfl
 #align mul_ring_seminorm.to_fun_eq_coe MulRingSeminorm.toFun_eq_coe
+-/
 
+#print MulRingSeminorm.ext /-
 @[ext]
 theorem ext {p q : MulRingSeminorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
 #align mul_ring_seminorm.ext MulRingSeminorm.ext
+-/
 
 variable [DecidableEq R] [NoZeroDivisors R] [Nontrivial R]
 
@@ -269,10 +289,12 @@ instance : One (MulRingSeminorm R) :=
         · simp
         · simp [hx, hy] }⟩
 
+#print MulRingSeminorm.apply_one /-
 @[simp]
 theorem apply_one (x : R) : (1 : MulRingSeminorm R) x = if x = 0 then 0 else 1 :=
   rfl
 #align mul_ring_seminorm.apply_one MulRingSeminorm.apply_one
+-/
 
 instance : Inhabited (MulRingSeminorm R) :=
   ⟨1⟩
@@ -306,10 +328,12 @@ theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p :=
   rfl
 #align mul_ring_norm.to_fun_eq_coe MulRingNorm.toFun_eq_coe
 
+#print MulRingNorm.ext /-
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
 #align mul_ring_norm.ext MulRingNorm.ext
+-/
 
 variable (R) [DecidableEq R] [NoZeroDivisors R] [Nontrivial R]
 
@@ -318,16 +342,19 @@ other element. -/
 instance : One (MulRingNorm R) :=
   ⟨{ (1 : MulRingSeminorm R), (1 : AddGroupNorm R) with }⟩
 
+#print MulRingNorm.apply_one /-
 @[simp]
 theorem apply_one (x : R) : (1 : MulRingNorm R) x = if x = 0 then 0 else 1 :=
   rfl
 #align mul_ring_norm.apply_one MulRingNorm.apply_one
+-/
 
 instance : Inhabited (MulRingNorm R) :=
   ⟨1⟩
 
 end MulRingNorm
 
+#print RingSeminorm.toRingNorm /-
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
 def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f ≠ 0) :
     RingNorm K :=
@@ -346,6 +373,7 @@ def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f
             (map_nonneg f _)
       exact hc hc0 }
 #align ring_seminorm.to_ring_norm RingSeminorm.toRingNorm
+-/
 
 #print normRingNorm /-
 /-- The norm of a normed_ring as a ring_norm. -/
Diff
@@ -68,7 +68,7 @@ structure RingNorm (R : Type _) [NonUnitalNonAssocRing R] extends RingSeminorm R
 multiplication, takes nonnegative values, is subadditive and such that `f (-x) = f x` for all `x`.
 -/
 structure MulRingSeminorm (R : Type _) [NonAssocRing R] extends AddGroupSeminorm R,
-  MonoidWithZeroHom R ℝ
+    MonoidWithZeroHom R ℝ
 #align mul_ring_seminorm MulRingSeminorm
 -/
 
@@ -79,8 +79,9 @@ structure MulRingNorm (R : Type _) [NonAssocRing R] extends MulRingSeminorm R, A
 #align mul_ring_norm MulRingNorm
 -/
 
-attribute [nolint doc_blame]
-  RingSeminorm.toAddGroupSeminorm RingNorm.toAddGroupNorm RingNorm.toRingSeminorm MulRingSeminorm.toAddGroupSeminorm MulRingSeminorm.toMonoidWithZeroHom MulRingNorm.toAddGroupNorm MulRingNorm.toMulRingSeminorm
+attribute [nolint doc_blame] RingSeminorm.toAddGroupSeminorm RingNorm.toAddGroupNorm
+  RingNorm.toRingSeminorm MulRingSeminorm.toAddGroupSeminorm MulRingSeminorm.toMonoidWithZeroHom
+  MulRingNorm.toAddGroupNorm MulRingNorm.toMulRingSeminorm
 
 namespace RingSeminorm
 
@@ -137,7 +138,7 @@ instance [DecidableEq R] : One (RingSeminorm R) :=
           refine' (if_pos h).trans_le (mul_nonneg _ _) <;>
             · change _ ≤ ite _ _ _
               split_ifs
-              exacts[le_rfl, zero_le_one]
+              exacts [le_rfl, zero_le_one]
         · change ite _ _ _ ≤ ite _ _ _ * ite _ _ _
           simp only [if_false, h, left_ne_zero_of_mul h, right_ne_zero_of_mul h, mul_one] }⟩
 
Diff
@@ -196,12 +196,10 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ
 instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
-/- warning: ring_norm.to_fun_eq_coe clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align ring_norm.to_fun_eq_coe [anonymous]ₓ'. -/
 @[simp]
-theorem [anonymous] (p : RingNorm R) : p.toFun = p :=
+theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p :=
   rfl
-#align ring_norm.to_fun_eq_coe [anonymous]
+#align ring_norm.to_fun_eq_coe RingNorm.toFun_eq_coe
 
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
@@ -302,12 +300,10 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ
 instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
-/- warning: mul_ring_norm.to_fun_eq_coe clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align mul_ring_norm.to_fun_eq_coe [anonymous]ₓ'. -/
 @[simp]
-theorem [anonymous] (p : MulRingNorm R) : p.toFun = p :=
+theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p :=
   rfl
-#align mul_ring_norm.to_fun_eq_coe [anonymous]
+#align mul_ring_norm.to_fun_eq_coe MulRingNorm.toFun_eq_coe
 
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
Diff
@@ -44,7 +44,7 @@ ring_seminorm, ring_norm
 -/
 
 
-open NNReal
+open scoped NNReal
 
 variable {F R S : Type _} (x y : R) (r : ℝ)
 
Diff
@@ -104,23 +104,11 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ
 instance : CoeFun (RingSeminorm R) fun _ => R → ℝ :=
   FunLike.hasCoeToFun
 
-/- warning: ring_seminorm.to_fun_eq_coe -> RingSeminorm.toFun_eq_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] (p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)), Eq.{succ u1} (R -> Real) (RingSeminorm.toFun.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) p) (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] (p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)), Eq.{succ u1} (R -> Real) (FunLike.coe.{succ u1, succ u1, 1} (AddGroupSeminorm.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) R (fun (a._@.Mathlib.Analysis.Normed.Group.Seminorm._hyg.956 : R) => Real) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) R Real (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (SubNegMonoid.toAddMonoid.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))))))) (AddZeroClass.toAdd.{0} Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (OrderedAddCommMonoid.toAddCommMonoid.{0} Real Real.orderedAddCommMonoid)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedAddCommMonoid.toPartialOrder.{0} Real Real.orderedAddCommMonoid))) (AddGroupSeminormClass.toSubadditiveHomClass.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) R Real (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) Real.orderedAddCommMonoid (AddGroupSeminorm.addGroupSeminormClass.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) p)) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p)
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.to_fun_eq_coe RingSeminorm.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (p : RingSeminorm R) : p.toFun = p :=
   rfl
 #align ring_seminorm.to_fun_eq_coe RingSeminorm.toFun_eq_coe
 
-/- warning: ring_seminorm.ext -> RingSeminorm.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) q x)) -> (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.ext RingSeminorm.extₓ'. -/
 @[ext]
 theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -129,22 +117,10 @@ theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
 instance : Zero (RingSeminorm R) :=
   ⟨{ AddGroupSeminorm.hasZero.zero with mul_le' := fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
 
-/- warning: ring_seminorm.eq_zero_iff -> RingSeminorm.eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.hasZero.{u1} R _inst_1))))) (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R _inst_1)))) (forall (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p x) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iffₓ'. -/
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
   FunLike.ext_iff
 #align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iff
 
-/- warning: ring_seminorm.ne_zero_iff -> RingSeminorm.ne_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Ne.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.hasZero.{u1} R _inst_1))))) (Exists.{succ u1} R (fun (x : R) => Ne.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Ne.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R _inst_1)))) (Exists.{succ u1} R (fun (x : R) => Ne.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p x) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.ne_zero_iff RingSeminorm.ne_zero_iffₓ'. -/
 theorem ne_zero_iff {p : RingSeminorm R} : p ≠ 0 ↔ ∃ x, p x ≠ 0 := by simp [eq_zero_iff]
 #align ring_seminorm.ne_zero_iff RingSeminorm.ne_zero_iff
 
@@ -165,12 +141,6 @@ instance [DecidableEq R] : One (RingSeminorm R) :=
         · change ite _ _ _ ≤ ite _ _ _ * ite _ _ _
           simp only [if_false, h, left_ne_zero_of_mul h, right_ne_zero_of_mul h, mul_one] }⟩
 
-/- warning: ring_seminorm.apply_one -> RingSeminorm.apply_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.one.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b))))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.toOfNat1.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.instOneRingSeminormToNonUnitalNonAssocRing.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b)))) x) (ite.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instZeroReal)) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.apply_one RingSeminorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one [DecidableEq R] (x : R) : (1 : RingSeminorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -182,12 +152,6 @@ section Ring
 
 variable [Ring R] (p : RingSeminorm R)
 
-/- warning: ring_seminorm.seminorm_one_eq_one_iff_ne_zero -> RingSeminorm.seminorm_one_eq_one_iff_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} Real Real.hasLe (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Iff (Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.hasZero.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) Real.instLEReal (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) Real.instOneReal))) -> (Iff (Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) Real.instOneReal))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zeroₓ'. -/
 theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :=
   by
   refine' ⟨fun h => ne_zero_iff.mpr ⟨1, by rw [h]; exact one_ne_zero⟩, fun h => _⟩
@@ -233,23 +197,12 @@ instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
 /- warning: ring_norm.to_fun_eq_coe clashes with [anonymous] -> [anonymous]
-warning: ring_norm.to_fun_eq_coe -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u_2}} [_inst_1 : NonUnitalRing.{u_2} R] (p : RingNorm.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1)), Eq.{max (succ u_2) 1} (R -> Real) (RingNorm.toFun.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1) p) (coeFn.{succ u_2, max (succ u_2) 1} (RingNorm.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1)) (fun (_x : RingNorm.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u_2} R _inst_1) p)
-but is expected to have type
-  forall {R : Type.{u}} {_inst_1 : Type.{v}}, (Nat -> R -> _inst_1) -> Nat -> (List.{u} R) -> (List.{v} _inst_1)
 Case conversion may be inaccurate. Consider using '#align ring_norm.to_fun_eq_coe [anonymous]ₓ'. -/
 @[simp]
 theorem [anonymous] (p : RingNorm R) : p.toFun = p :=
   rfl
 #align ring_norm.to_fun_eq_coe [anonymous]
 
-/- warning: ring_norm.ext -> RingNorm.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (RingNorm.toRingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) p)) x) (AddGroupSeminorm.toFun.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (RingNorm.toRingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) q)) x)) -> (Eq.{succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
-Case conversion may be inaccurate. Consider using '#align ring_norm.ext RingNorm.extₓ'. -/
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -262,12 +215,6 @@ variable (R)
 instance [DecidableEq R] : One (RingNorm R) :=
   ⟨{ (1 : RingSeminorm R), (1 : AddGroupNorm R) with }⟩
 
-/- warning: ring_norm.apply_one -> RingNorm.apply_one is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (OfNat.mk.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.one.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingNorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b))))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (RingNorm.toRingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (OfNat.ofNat.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.toOfNat1.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingNorm.instOneRingNormToNonUnitalNonAssocRing.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b)))))) x) (ite.{1} Real (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align ring_norm.apply_one RingNorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one [DecidableEq R] (x : R) : (1 : RingNorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -299,23 +246,11 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ
 instance : CoeFun (MulRingSeminorm R) fun _ => R → ℝ :=
   FunLike.hasCoeToFun
 
-/- warning: mul_ring_seminorm.to_fun_eq_coe -> MulRingSeminorm.toFun_eq_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] (p : MulRingSeminorm.{u1} R _inst_1), Eq.{succ u1} (R -> Real) (MulRingSeminorm.toFun.{u1} R _inst_1 p) (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) p)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] (p : MulRingSeminorm.{u1} R _inst_1), Eq.{succ u1} (R -> Real) (FunLike.coe.{succ u1, succ u1, 1} (AddGroupSeminorm.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))) R (fun (a._@.Mathlib.Analysis.Normed.Group.Seminorm._hyg.956 : R) => Real) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))) R Real (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (SubNegMonoid.toAddMonoid.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))))))) (AddZeroClass.toAdd.{0} Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (OrderedAddCommMonoid.toAddCommMonoid.{0} Real Real.orderedAddCommMonoid)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedAddCommMonoid.toPartialOrder.{0} Real Real.orderedAddCommMonoid))) (AddGroupSeminormClass.toSubadditiveHomClass.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))) R Real (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) Real.orderedAddCommMonoid (AddGroupSeminorm.addGroupSeminormClass.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 p)) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) p)
-Case conversion may be inaccurate. Consider using '#align mul_ring_seminorm.to_fun_eq_coe MulRingSeminorm.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (p : MulRingSeminorm R) : p.toFun = p :=
   rfl
 #align mul_ring_seminorm.to_fun_eq_coe MulRingSeminorm.toFun_eq_coe
 
-/- warning: mul_ring_seminorm.ext -> MulRingSeminorm.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingSeminorm.{u1} R _inst_1} {q : MulRingSeminorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (MulRingSeminorm.{u1} R _inst_1) p q)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingSeminorm.{u1} R _inst_1} {q : MulRingSeminorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) p x) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) q x)) -> (Eq.{succ u1} (MulRingSeminorm.{u1} R _inst_1) p q)
-Case conversion may be inaccurate. Consider using '#align mul_ring_seminorm.ext MulRingSeminorm.extₓ'. -/
 @[ext]
 theorem ext {p q : MulRingSeminorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -335,12 +270,6 @@ instance : One (MulRingSeminorm R) :=
         · simp
         · simp [hx, hy] }⟩
 
-/- warning: mul_ring_seminorm.apply_one -> MulRingSeminorm.apply_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1))))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (MulRingSeminorm.{u1} R _inst_1) 1 (OfNat.mk.{u1} (MulRingSeminorm.{u1} R _inst_1) 1 (One.one.{u1} (MulRingSeminorm.{u1} R _inst_1) (MulRingSeminorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4)))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) (OfNat.ofNat.{u1} (MulRingSeminorm.{u1} R _inst_1) 1 (One.toOfNat1.{u1} (MulRingSeminorm.{u1} R _inst_1) (MulRingSeminorm.instOneMulRingSeminorm.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4))) x) (ite.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) Real.instZeroReal)) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align mul_ring_seminorm.apply_one MulRingSeminorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one (x : R) : (1 : MulRingSeminorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -374,23 +303,12 @@ instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
 /- warning: mul_ring_norm.to_fun_eq_coe clashes with [anonymous] -> [anonymous]
-warning: mul_ring_norm.to_fun_eq_coe -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u_2}} [_inst_1 : NonAssocRing.{u_2} R] (p : MulRingNorm.{u_2} R _inst_1), Eq.{max (succ u_2) 1} (R -> Real) (MulRingNorm.toFun.{u_2} R _inst_1 p) (coeFn.{succ u_2, max (succ u_2) 1} (MulRingNorm.{u_2} R _inst_1) (fun (_x : MulRingNorm.{u_2} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u_2} R _inst_1) p)
-but is expected to have type
-  forall {R : Type.{u}} {_inst_1 : Type.{v}}, (Nat -> R -> _inst_1) -> Nat -> (List.{u} R) -> (List.{v} _inst_1)
 Case conversion may be inaccurate. Consider using '#align mul_ring_norm.to_fun_eq_coe [anonymous]ₓ'. -/
 @[simp]
 theorem [anonymous] (p : MulRingNorm R) : p.toFun = p :=
   rfl
 #align mul_ring_norm.to_fun_eq_coe [anonymous]
 
-/- warning: mul_ring_norm.ext -> MulRingNorm.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingNorm.{u1} R _inst_1} {q : MulRingNorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingNorm.{u1} R _inst_1) (fun (_x : MulRingNorm.{u1} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (MulRingNorm.{u1} R _inst_1) (fun (_x : MulRingNorm.{u1} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (MulRingNorm.{u1} R _inst_1) p q)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingNorm.{u1} R _inst_1} {q : MulRingNorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 (MulRingNorm.toMulRingSeminorm.{u1} R _inst_1 p)) x) (AddGroupSeminorm.toFun.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 (MulRingNorm.toMulRingSeminorm.{u1} R _inst_1 q)) x)) -> (Eq.{succ u1} (MulRingNorm.{u1} R _inst_1) p q)
-Case conversion may be inaccurate. Consider using '#align mul_ring_norm.ext MulRingNorm.extₓ'. -/
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -403,12 +321,6 @@ other element. -/
 instance : One (MulRingNorm R) :=
   ⟨{ (1 : MulRingSeminorm R), (1 : AddGroupNorm R) with }⟩
 
-/- warning: mul_ring_norm.apply_one -> MulRingNorm.apply_one is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1))))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingNorm.{u1} R _inst_1) (fun (_x : MulRingNorm.{u1} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (MulRingNorm.{u1} R _inst_1) 1 (OfNat.mk.{u1} (MulRingNorm.{u1} R _inst_1) 1 (One.one.{u1} (MulRingNorm.{u1} R _inst_1) (MulRingNorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4)))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 (MulRingNorm.toMulRingSeminorm.{u1} R _inst_1 (OfNat.ofNat.{u1} (MulRingNorm.{u1} R _inst_1) 1 (One.toOfNat1.{u1} (MulRingNorm.{u1} R _inst_1) (MulRingNorm.instOneMulRingNorm.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4))))) x) (ite.{1} Real (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align mul_ring_norm.apply_one MulRingNorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one (x : R) : (1 : MulRingNorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -419,12 +331,6 @@ instance : Inhabited (MulRingNorm R) :=
 
 end MulRingNorm
 
-/- warning: ring_seminorm.to_ring_norm -> RingSeminorm.toRingNorm is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (f : RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))), (Ne.{succ u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) f (OfNat.ofNat.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) 0 (Zero.zero.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) (RingSeminorm.hasZero.{u1} K (NonUnitalCommRing.toNonUnitalRing.{u1} K (CommRing.toNonUnitalCommRing.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_1))))))))) -> (RingNorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))))
-but is expected to have type
-  forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (f : RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))), (Ne.{succ u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) f (OfNat.ofNat.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} K (NonUnitalCommRing.toNonUnitalRing.{u1} K (CommRing.toNonUnitalCommRing.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_1)))))))) -> (RingNorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align ring_seminorm.to_ring_norm RingSeminorm.toRingNormₓ'. -/
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
 def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f ≠ 0) :
     RingNorm K :=
Diff
@@ -190,13 +190,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zeroₓ'. -/
 theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :=
   by
-  refine'
-    ⟨fun h =>
-      ne_zero_iff.mpr
-        ⟨1, by
-          rw [h]
-          exact one_ne_zero⟩,
-      fun h => _⟩
+  refine' ⟨fun h => ne_zero_iff.mpr ⟨1, by rw [h]; exact one_ne_zero⟩, fun h => _⟩
   obtain hp0 | hp0 := (map_nonneg p (1 : R)).eq_or_gt
   · cases h (ext fun x => (map_nonneg _ _).antisymm' _)
     simpa only [hp0, mul_one, MulZeroClass.mul_zero] using map_mul_le_mul p x 1
Diff
@@ -186,7 +186,7 @@ variable [Ring R] (p : RingSeminorm R)
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} Real Real.hasLe (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Iff (Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.hasZero.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))))))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) Real.instLEReal (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) Real.instOneReal))) -> (Iff (Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) Real.instOneReal))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))))))
+  forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) Real.instLEReal (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) Real.instOneReal))) -> (Iff (Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) Real.instOneReal))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zeroₓ'. -/
 theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :=
   by
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: María Inés de Frutos-Fernández, Yaël Dillies
 
 ! This file was ported from Lean 3 source module analysis.normed.ring.seminorm
-! leanprover-community/mathlib commit 7ea604785a41a0681eac70c5a82372493dbefc68
+! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Analysis.Normed.Field.Basic
 /-!
 # Seminorms and norms on rings
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines seminorms and norms on rings. These definitions are useful when one needs to
 consider multiple (semi)norms on a given ring.
 
Diff
@@ -45,28 +45,36 @@ open NNReal
 
 variable {F R S : Type _} (x y : R) (r : ℝ)
 
+#print RingSeminorm /-
 /-- A seminorm on a ring `R` is a function `f : R → ℝ` that preserves zero, takes nonnegative
   values, is subadditive and submultiplicative and such that `f (-x) = f x` for all `x ∈ R`. -/
 structure RingSeminorm (R : Type _) [NonUnitalNonAssocRing R] extends AddGroupSeminorm R where
   mul_le' : ∀ x y : R, to_fun (x * y) ≤ to_fun x * to_fun y
 #align ring_seminorm RingSeminorm
+-/
 
+#print RingNorm /-
 /-- A function `f : R → ℝ` is a norm on a (nonunital) ring if it is a seminorm and `f x = 0`
   implies `x = 0`. -/
 structure RingNorm (R : Type _) [NonUnitalNonAssocRing R] extends RingSeminorm R, AddGroupNorm R
 #align ring_norm RingNorm
+-/
 
+#print MulRingSeminorm /-
 /-- A multiplicative seminorm on a ring `R` is a function `f : R → ℝ` that preserves zero and
 multiplication, takes nonnegative values, is subadditive and such that `f (-x) = f x` for all `x`.
 -/
 structure MulRingSeminorm (R : Type _) [NonAssocRing R] extends AddGroupSeminorm R,
   MonoidWithZeroHom R ℝ
 #align mul_ring_seminorm MulRingSeminorm
+-/
 
+#print MulRingNorm /-
 /-- A multiplicative norm on a ring `R` is a multiplicative ring seminorm such that `f x = 0`
 implies `x = 0`. -/
 structure MulRingNorm (R : Type _) [NonAssocRing R] extends MulRingSeminorm R, AddGroupNorm R
 #align mul_ring_norm MulRingNorm
+-/
 
 attribute [nolint doc_blame]
   RingSeminorm.toAddGroupSeminorm RingNorm.toAddGroupNorm RingNorm.toRingSeminorm MulRingSeminorm.toAddGroupSeminorm MulRingSeminorm.toMonoidWithZeroHom MulRingNorm.toAddGroupNorm MulRingNorm.toMulRingSeminorm
@@ -77,6 +85,7 @@ section NonUnitalRing
 
 variable [NonUnitalRing R]
 
+#print RingSeminorm.ringSeminormClass /-
 instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ
     where
   coe f := f.toFun
@@ -86,16 +95,29 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ
   map_mul_le_mul f := f.mul_le'
   map_neg_eq_map f := f.neg'
 #align ring_seminorm.ring_seminorm_class RingSeminorm.ringSeminormClass
+-/
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`. -/
 instance : CoeFun (RingSeminorm R) fun _ => R → ℝ :=
   FunLike.hasCoeToFun
 
+/- warning: ring_seminorm.to_fun_eq_coe -> RingSeminorm.toFun_eq_coe is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] (p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)), Eq.{succ u1} (R -> Real) (RingSeminorm.toFun.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) p) (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] (p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)), Eq.{succ u1} (R -> Real) (FunLike.coe.{succ u1, succ u1, 1} (AddGroupSeminorm.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) R (fun (a._@.Mathlib.Analysis.Normed.Group.Seminorm._hyg.956 : R) => Real) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) R Real (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (SubNegMonoid.toAddMonoid.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))))))) (AddZeroClass.toAdd.{0} Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (OrderedAddCommMonoid.toAddCommMonoid.{0} Real Real.orderedAddCommMonoid)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedAddCommMonoid.toPartialOrder.{0} Real Real.orderedAddCommMonoid))) (AddGroupSeminormClass.toSubadditiveHomClass.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) R Real (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) Real.orderedAddCommMonoid (AddGroupSeminorm.addGroupSeminormClass.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) p)) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p)
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.to_fun_eq_coe RingSeminorm.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (p : RingSeminorm R) : p.toFun = p :=
   rfl
 #align ring_seminorm.to_fun_eq_coe RingSeminorm.toFun_eq_coe
 
+/- warning: ring_seminorm.ext -> RingSeminorm.ext is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) q x)) -> (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.ext RingSeminorm.extₓ'. -/
 @[ext]
 theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -104,10 +126,22 @@ theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
 instance : Zero (RingSeminorm R) :=
   ⟨{ AddGroupSeminorm.hasZero.zero with mul_le' := fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
 
+/- warning: ring_seminorm.eq_zero_iff -> RingSeminorm.eq_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.hasZero.{u1} R _inst_1))))) (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Eq.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R _inst_1)))) (forall (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p x) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iffₓ'. -/
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
   FunLike.ext_iff
 #align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iff
 
+/- warning: ring_seminorm.ne_zero_iff -> RingSeminorm.ne_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Ne.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.hasZero.{u1} R _inst_1))))) (Exists.{succ u1} R (fun (x : R) => Ne.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, Iff (Ne.{succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R _inst_1)))) (Exists.{succ u1} R (fun (x : R) => Ne.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) p x) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.ne_zero_iff RingSeminorm.ne_zero_iffₓ'. -/
 theorem ne_zero_iff {p : RingSeminorm R} : p ≠ 0 ↔ ∃ x, p x ≠ 0 := by simp [eq_zero_iff]
 #align ring_seminorm.ne_zero_iff RingSeminorm.ne_zero_iff
 
@@ -128,6 +162,12 @@ instance [DecidableEq R] : One (RingSeminorm R) :=
         · change ite _ _ _ ≤ ite _ _ _ * ite _ _ _
           simp only [if_false, h, left_ne_zero_of_mul h, right_ne_zero_of_mul h, mul_one] }⟩
 
+/- warning: ring_seminorm.apply_one -> RingSeminorm.apply_one is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.one.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b))))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R _inst_1))) (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.toOfNat1.{u1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingSeminorm.instOneRingSeminormToNonUnitalNonAssocRing.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b)))) x) (ite.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instZeroReal)) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) x) Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.apply_one RingSeminorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one [DecidableEq R] (x : R) : (1 : RingSeminorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -139,6 +179,12 @@ section Ring
 
 variable [Ring R] (p : RingSeminorm R)
 
+/- warning: ring_seminorm.seminorm_one_eq_one_iff_ne_zero -> RingSeminorm.seminorm_one_eq_one_iff_ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} Real Real.hasLe (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Iff (Eq.{1} Real (coeFn.{succ u1, succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (fun (_x : RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) => R -> Real) (RingSeminorm.hasCoeToFun.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) p (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.zero.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.hasZero.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] (p : RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))), (LE.le.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) Real.instLEReal (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) Real.instOneReal))) -> (Iff (Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (FunLike.coe.{succ u1, succ u1, 1} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (RingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))) R Real (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)) Real.orderedSemiring (RingSeminorm.ringSeminormClass.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1)))) p (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.319 : R) => Real) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) Real.instOneReal))) (Ne.{succ u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) p (OfNat.ofNat.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} R (Ring.toNonUnitalRing.{u1} R _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zeroₓ'. -/
 theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :=
   by
   refine'
@@ -159,17 +205,20 @@ end Ring
 
 end RingSeminorm
 
+#print normRingSeminorm /-
 /-- The norm of a `non_unital_semi_normed_ring` as a `ring_seminorm`. -/
 def normRingSeminorm (R : Type _) [NonUnitalSeminormedRing R] : RingSeminorm R :=
   { normAddGroupSeminorm R with
     toFun := norm
     mul_le' := norm_mul_le }
 #align norm_ring_seminorm normRingSeminorm
+-/
 
 namespace RingNorm
 
 variable [NonUnitalRing R]
 
+#print RingNorm.ringNormClass /-
 instance ringNormClass : RingNormClass (RingNorm R) R ℝ
     where
   coe f := f.toFun
@@ -180,16 +229,30 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ
   map_neg_eq_map f := f.neg'
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero'
 #align ring_norm.ring_norm_class RingNorm.ringNormClass
+-/
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`. -/
 instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
+/- warning: ring_norm.to_fun_eq_coe clashes with [anonymous] -> [anonymous]
+warning: ring_norm.to_fun_eq_coe -> [anonymous] is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u_2}} [_inst_1 : NonUnitalRing.{u_2} R] (p : RingNorm.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1)), Eq.{max (succ u_2) 1} (R -> Real) (RingNorm.toFun.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1) p) (coeFn.{succ u_2, max (succ u_2) 1} (RingNorm.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1)) (fun (_x : RingNorm.{u_2} R (NonUnitalRing.toNonUnitalNonAssocRing.{u_2} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u_2} R _inst_1) p)
+but is expected to have type
+  forall {R : Type.{u}} {_inst_1 : Type.{v}}, (Nat -> R -> _inst_1) -> Nat -> (List.{u} R) -> (List.{v} _inst_1)
+Case conversion may be inaccurate. Consider using '#align ring_norm.to_fun_eq_coe [anonymous]ₓ'. -/
 @[simp]
-theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p :=
+theorem [anonymous] (p : RingNorm R) : p.toFun = p :=
   rfl
-#align ring_norm.to_fun_eq_coe RingNorm.toFun_eq_coe
-
+#align ring_norm.to_fun_eq_coe [anonymous]
+
+/- warning: ring_norm.ext -> RingNorm.ext is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} R] {p : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)} {q : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)}, (forall (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (RingNorm.toRingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) p)) x) (AddGroupSeminorm.toFun.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (RingNorm.toRingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) q)) x)) -> (Eq.{succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) p q)
+Case conversion may be inaccurate. Consider using '#align ring_norm.ext RingNorm.extₓ'. -/
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -202,6 +265,12 @@ variable (R)
 instance [DecidableEq R] : One (RingNorm R) :=
   ⟨{ (1 : RingSeminorm R), (1 : AddGroupNorm R) with }⟩
 
+/- warning: ring_norm.apply_one -> RingNorm.apply_one is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (fun (_x : RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) => R -> Real) (RingNorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (OfNat.mk.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.one.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingNorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b))))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : NonUnitalRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddCommGroup.toAddGroup.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1))) (RingSeminorm.toAddGroupSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (RingNorm.toRingSeminorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1) (OfNat.ofNat.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) 1 (One.toOfNat1.{u1} (RingNorm.{u1} R (NonUnitalRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (RingNorm.instOneRingNormToNonUnitalNonAssocRing.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b)))))) x) (ite.{1} Real (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (SemigroupWithZero.toZero.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align ring_norm.apply_one RingNorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one [DecidableEq R] (x : R) : (1 : RingNorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -216,6 +285,7 @@ namespace MulRingSeminorm
 
 variable [NonAssocRing R]
 
+#print MulRingSeminorm.mulRingSeminormClass /-
 instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ
     where
   coe f := f.toFun
@@ -226,16 +296,29 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ
   map_mul f := f.map_mul'
   map_neg_eq_map f := f.neg'
 #align mul_ring_seminorm.mul_ring_seminorm_class MulRingSeminorm.mulRingSeminormClass
+-/
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`. -/
 instance : CoeFun (MulRingSeminorm R) fun _ => R → ℝ :=
   FunLike.hasCoeToFun
 
+/- warning: mul_ring_seminorm.to_fun_eq_coe -> MulRingSeminorm.toFun_eq_coe is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] (p : MulRingSeminorm.{u1} R _inst_1), Eq.{succ u1} (R -> Real) (MulRingSeminorm.toFun.{u1} R _inst_1 p) (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) p)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] (p : MulRingSeminorm.{u1} R _inst_1), Eq.{succ u1} (R -> Real) (FunLike.coe.{succ u1, succ u1, 1} (AddGroupSeminorm.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))) R (fun (a._@.Mathlib.Analysis.Normed.Group.Seminorm._hyg.956 : R) => Real) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))) R Real (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (SubNegMonoid.toAddMonoid.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))))))) (AddZeroClass.toAdd.{0} Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (OrderedAddCommMonoid.toAddCommMonoid.{0} Real Real.orderedAddCommMonoid)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedAddCommMonoid.toPartialOrder.{0} Real Real.orderedAddCommMonoid))) (AddGroupSeminormClass.toSubadditiveHomClass.{u1, u1, 0} (AddGroupSeminorm.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))) R Real (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) Real.orderedAddCommMonoid (AddGroupSeminorm.addGroupSeminormClass.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1)))))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 p)) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) p)
+Case conversion may be inaccurate. Consider using '#align mul_ring_seminorm.to_fun_eq_coe MulRingSeminorm.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (p : MulRingSeminorm R) : p.toFun = p :=
   rfl
 #align mul_ring_seminorm.to_fun_eq_coe MulRingSeminorm.toFun_eq_coe
 
+/- warning: mul_ring_seminorm.ext -> MulRingSeminorm.ext is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingSeminorm.{u1} R _inst_1} {q : MulRingSeminorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (MulRingSeminorm.{u1} R _inst_1) p q)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingSeminorm.{u1} R _inst_1} {q : MulRingSeminorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) p x) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) q x)) -> (Eq.{succ u1} (MulRingSeminorm.{u1} R _inst_1) p q)
+Case conversion may be inaccurate. Consider using '#align mul_ring_seminorm.ext MulRingSeminorm.extₓ'. -/
 @[ext]
 theorem ext {p q : MulRingSeminorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -255,6 +338,12 @@ instance : One (MulRingSeminorm R) :=
         · simp
         · simp [hx, hy] }⟩
 
+/- warning: mul_ring_seminorm.apply_one -> MulRingSeminorm.apply_one is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1))))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingSeminorm.{u1} R _inst_1) (fun (_x : MulRingSeminorm.{u1} R _inst_1) => R -> Real) (MulRingSeminorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (MulRingSeminorm.{u1} R _inst_1) 1 (OfNat.mk.{u1} (MulRingSeminorm.{u1} R _inst_1) 1 (One.one.{u1} (MulRingSeminorm.{u1} R _inst_1) (MulRingSeminorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4)))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) (FunLike.coe.{succ u1, succ u1, 1} (MulRingSeminorm.{u1} R _inst_1) R (fun (_x : R) => (fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) _x) (SubmultiplicativeHomClass.toFunLike.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real (OrderedSemiring.toSemiring.{0} Real Real.orderedSemiring)))) (Preorder.toLE.{0} Real (PartialOrder.toPreorder.{0} Real (OrderedSemiring.toPartialOrder.{0} Real Real.orderedSemiring))) (RingSeminormClass.toSubmultiplicativeHomClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1) Real.orderedSemiring (MulRingSeminormClass.toRingSeminormClass.{u1, u1, 0} (MulRingSeminorm.{u1} R _inst_1) R Real _inst_1 Real.orderedSemiring (MulRingSeminorm.mulRingSeminormClass.{u1} R _inst_1)))) (OfNat.ofNat.{u1} (MulRingSeminorm.{u1} R _inst_1) 1 (One.toOfNat1.{u1} (MulRingSeminorm.{u1} R _inst_1) (MulRingSeminorm.instOneMulRingSeminorm.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4))) x) (ite.{1} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) 0 (Zero.toOfNat0.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) Real.instZeroReal)) (OfNat.ofNat.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) 1 (One.toOfNat1.{0} ((fun (a._@.Mathlib.Analysis.Normed.Ring.Seminorm._hyg.1434 : R) => Real) x) Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align mul_ring_seminorm.apply_one MulRingSeminorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one (x : R) : (1 : MulRingSeminorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -269,6 +358,7 @@ namespace MulRingNorm
 
 variable [NonAssocRing R]
 
+#print MulRingNorm.mulRingNormClass /-
 instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ
     where
   coe f := f.toFun
@@ -280,16 +370,30 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ
   map_neg_eq_map f := f.neg'
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero'
 #align mul_ring_norm.mul_ring_norm_class MulRingNorm.mulRingNormClass
+-/
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`. -/
 instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
+/- warning: mul_ring_norm.to_fun_eq_coe clashes with [anonymous] -> [anonymous]
+warning: mul_ring_norm.to_fun_eq_coe -> [anonymous] is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u_2}} [_inst_1 : NonAssocRing.{u_2} R] (p : MulRingNorm.{u_2} R _inst_1), Eq.{max (succ u_2) 1} (R -> Real) (MulRingNorm.toFun.{u_2} R _inst_1 p) (coeFn.{succ u_2, max (succ u_2) 1} (MulRingNorm.{u_2} R _inst_1) (fun (_x : MulRingNorm.{u_2} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u_2} R _inst_1) p)
+but is expected to have type
+  forall {R : Type.{u}} {_inst_1 : Type.{v}}, (Nat -> R -> _inst_1) -> Nat -> (List.{u} R) -> (List.{v} _inst_1)
+Case conversion may be inaccurate. Consider using '#align mul_ring_norm.to_fun_eq_coe [anonymous]ₓ'. -/
 @[simp]
-theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p :=
+theorem [anonymous] (p : MulRingNorm R) : p.toFun = p :=
   rfl
-#align mul_ring_norm.to_fun_eq_coe MulRingNorm.toFun_eq_coe
-
+#align mul_ring_norm.to_fun_eq_coe [anonymous]
+
+/- warning: mul_ring_norm.ext -> MulRingNorm.ext is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingNorm.{u1} R _inst_1} {q : MulRingNorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingNorm.{u1} R _inst_1) (fun (_x : MulRingNorm.{u1} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u1} R _inst_1) p x) (coeFn.{succ u1, succ u1} (MulRingNorm.{u1} R _inst_1) (fun (_x : MulRingNorm.{u1} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u1} R _inst_1) q x)) -> (Eq.{succ u1} (MulRingNorm.{u1} R _inst_1) p q)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonAssocRing.{u1} R] {p : MulRingNorm.{u1} R _inst_1} {q : MulRingNorm.{u1} R _inst_1}, (forall (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 (MulRingNorm.toMulRingSeminorm.{u1} R _inst_1 p)) x) (AddGroupSeminorm.toFun.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 (MulRingNorm.toMulRingSeminorm.{u1} R _inst_1 q)) x)) -> (Eq.{succ u1} (MulRingNorm.{u1} R _inst_1) p q)
+Case conversion may be inaccurate. Consider using '#align mul_ring_norm.ext MulRingNorm.extₓ'. -/
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
   FunLike.ext p q
@@ -302,6 +406,12 @@ other element. -/
 instance : One (MulRingNorm R) :=
   ⟨{ (1 : MulRingSeminorm R), (1 : AddGroupNorm R) with }⟩
 
+/- warning: mul_ring_norm.apply_one -> MulRingNorm.apply_one is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1))))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} Real (coeFn.{succ u1, succ u1} (MulRingNorm.{u1} R _inst_1) (fun (_x : MulRingNorm.{u1} R _inst_1) => R -> Real) (MulRingNorm.hasCoeToFun.{u1} R _inst_1) (OfNat.ofNat.{u1} (MulRingNorm.{u1} R _inst_1) 1 (OfNat.mk.{u1} (MulRingNorm.{u1} R _inst_1) 1 (One.one.{u1} (MulRingNorm.{u1} R _inst_1) (MulRingNorm.hasOne.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4)))) x) (ite.{1} Real (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 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)))))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : NonAssocRing.{u1} R] [_inst_2 : DecidableEq.{succ u1} R] [_inst_3 : NoZeroDivisors.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R _inst_1)) (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))] [_inst_4 : Nontrivial.{u1} R] (x : R), Eq.{1} Real (AddGroupSeminorm.toFun.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (NonAssocRing.toAddCommGroupWithOne.{u1} R _inst_1))) (MulRingSeminorm.toAddGroupSeminorm.{u1} R _inst_1 (MulRingNorm.toMulRingSeminorm.{u1} R _inst_1 (OfNat.ofNat.{u1} (MulRingNorm.{u1} R _inst_1) 1 (One.toOfNat1.{u1} (MulRingNorm.{u1} R _inst_1) (MulRingNorm.instOneMulRingNorm.{u1} R _inst_1 (fun (a : R) (b : R) => _inst_2 a b) _inst_3 _inst_4))))) x) (ite.{1} Real (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (_inst_2 x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align mul_ring_norm.apply_one MulRingNorm.apply_oneₓ'. -/
 @[simp]
 theorem apply_one (x : R) : (1 : MulRingNorm R) x = if x = 0 then 0 else 1 :=
   rfl
@@ -312,6 +422,12 @@ instance : Inhabited (MulRingNorm R) :=
 
 end MulRingNorm
 
+/- warning: ring_seminorm.to_ring_norm -> RingSeminorm.toRingNorm is a dubious translation:
+lean 3 declaration is
+  forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (f : RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))), (Ne.{succ u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) f (OfNat.ofNat.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) 0 (OfNat.mk.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) 0 (Zero.zero.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) (RingSeminorm.hasZero.{u1} K (NonUnitalCommRing.toNonUnitalRing.{u1} K (CommRing.toNonUnitalCommRing.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_1))))))))) -> (RingNorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))))
+but is expected to have type
+  forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (f : RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))), (Ne.{succ u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) f (OfNat.ofNat.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) 0 (Zero.toOfNat0.{u1} (RingSeminorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))))) (RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing.{u1} K (NonUnitalCommRing.toNonUnitalRing.{u1} K (CommRing.toNonUnitalCommRing.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_1)))))))) -> (RingNorm.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align ring_seminorm.to_ring_norm RingSeminorm.toRingNormₓ'. -/
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
 def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f ≠ 0) :
     RingNorm K :=
@@ -331,9 +447,11 @@ def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f
       exact hc hc0 }
 #align ring_seminorm.to_ring_norm RingSeminorm.toRingNorm
 
+#print normRingNorm /-
 /-- The norm of a normed_ring as a ring_norm. -/
 @[simps]
 def normRingNorm (R : Type _) [NonUnitalNormedRing R] : RingNorm R :=
   { normAddGroupNorm R, normRingSeminorm R with }
 #align norm_ring_norm normRingNorm
+-/
 
Diff
@@ -160,7 +160,7 @@ end Ring
 end RingSeminorm
 
 /-- The norm of a `non_unital_semi_normed_ring` as a `ring_seminorm`. -/
-def normRingSeminorm (R : Type _) [NonUnitalSemiNormedRing R] : RingSeminorm R :=
+def normRingSeminorm (R : Type _) [NonUnitalSeminormedRing R] : RingSeminorm R :=
   { normAddGroupSeminorm R with
     toFun := norm
     mul_le' := norm_mul_le }
Diff
@@ -102,7 +102,7 @@ theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
 #align ring_seminorm.ext RingSeminorm.ext
 
 instance : Zero (RingSeminorm R) :=
-  ⟨{ AddGroupSeminorm.hasZero.zero with mul_le' := fun _ _ => (zero_mul _).ge }⟩
+  ⟨{ AddGroupSeminorm.hasZero.zero with mul_le' := fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
 
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
   FunLike.ext_iff
@@ -150,7 +150,7 @@ theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :
       fun h => _⟩
   obtain hp0 | hp0 := (map_nonneg p (1 : R)).eq_or_gt
   · cases h (ext fun x => (map_nonneg _ _).antisymm' _)
-    simpa only [hp0, mul_one, mul_zero] using map_mul_le_mul p x 1
+    simpa only [hp0, mul_one, MulZeroClass.mul_zero] using map_mul_le_mul p x 1
   · refine' hp.antisymm ((le_mul_iff_one_le_left hp0).1 _)
     simpa only [one_mul] using map_mul_le_mul p (1 : R) _
 #align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zero
@@ -325,7 +325,8 @@ def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f
         rw [← mul_one c, ← mul_inv_cancel hn0, ← mul_assoc, mul_comm c, mul_assoc]
         exact
           le_antisymm
-            (le_trans (map_mul_le_mul f _ _) (by rw [← RingSeminorm.toFun_eq_coe, hx, zero_mul]))
+            (le_trans (map_mul_le_mul f _ _)
+              (by rw [← RingSeminorm.toFun_eq_coe, hx, MulZeroClass.zero_mul]))
             (map_nonneg f _)
       exact hc hc0 }
 #align ring_seminorm.to_ring_norm RingSeminorm.toRingNorm

Changes in mathlib4

mathlib3
mathlib4
doc: convert many comments into doc comments (#11940)

All of these changes appear to be oversights to me.

Diff
@@ -329,14 +329,11 @@ variable {R : Type*} [Ring R]
 def equiv (f : MulRingNorm R) (g : MulRingNorm R) :=
   ∃ c : ℝ, 0 < c ∧ (fun x => (f x) ^ c) = g
 
-/- Equivalence of multiplicative ring norms is an equivalence relation
-
-  1. is reflexive-/
+/-- Equivalence of multiplicative ring norms is reflexive. -/
 lemma equiv_refl (f : MulRingNorm R) : equiv f f := by
     exact ⟨1, Real.zero_lt_one, by simp only [Real.rpow_one]⟩
-/- Equivalence of multiplicative ring norms is an equivalence relation
 
- 2. is symmetric-/
+/-- Equivalence of multiplicative ring norms is symmetric. -/
 lemma equiv_symm {f g : MulRingNorm R} (hfg : equiv f g) : equiv g f := by
   rcases hfg with ⟨c, hcpos, h⟩
   use 1/c
@@ -345,9 +342,7 @@ lemma equiv_symm {f g : MulRingNorm R} (hfg : equiv f g) : equiv g f := by
   ext x
   simpa [← congr_fun h x] using Real.rpow_rpow_inv (apply_nonneg f x) (ne_of_lt hcpos).symm
 
-/- Equivalence of multiplicative ring norms is an equivalence relation
-
- 3. is transitive-/
+/-- Equivalence of multiplicative ring norms is transitive. -/
 lemma equiv_trans {f g k : MulRingNorm R} (hfg : equiv f g) (hgk : equiv g k) :
     equiv f k := by
   rcases hfg with ⟨c, hcPos, hfg⟩
@@ -356,7 +351,6 @@ lemma equiv_trans {f g k : MulRingNorm R} (hfg : equiv f g) (hgk : equiv g k) :
   ext x
   rw [Real.rpow_mul (apply_nonneg f x), congr_fun hfg x, congr_fun hgk x]
 
-
 end MulRingNorm
 
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
@@ -384,7 +378,7 @@ def normRingNorm (R : Type*) [NonUnitalNormedRing R] : RingNorm R :=
 #align norm_ring_norm normRingNorm
 
 
-/-A multiplicative ring norm satisfies `f n ≤ n` for every `n : ℕ`-/
+/-- A multiplicative ring norm satisfies `f n ≤ n` for every `n : ℕ`. -/
 lemma MulRingNorm_nat_le_nat {R : Type*} [Ring R] (n : ℕ) (f : MulRingNorm R) : f n ≤ n := by
   induction n with
   | zero => simp only [Nat.cast_zero, map_zero, le_refl]
Feat (Analysis/Normed/Ring/Seminorm): add equivalence of MulRingNorms (#11852)

Include the definition of equivalence of MulRingNorms and the lemmas proving it is an equivalence relation. For this we add a new import (to Mathlib.Analysis.SpecialFunctions.Pow.Real). We also include a lemma describing the values of a multiplicative ring norm on the naturals, stating that for all n : ℕ if f : MulRingNorm R then f n ≤ n

Co-authored-by:

  • David Kurniadi Angdinata <dka31@cantab.ac.uk>
  • Fabrizio Barroero <fabrizio.barroero@uniroma3.it>
  • Laura Capuano <laura.capuano@uniroma3.it>
  • Nirvana Coppola <nirvanac93@gmail.com>
  • María Inés de Frutos Fernández <maria.defrutos@uam.es>
  • Silvain Rideau-Kikuchi <silvain.rideau-kikuchi@ens.fr>
  • Sam van Gool <vangool@irif.fr>
  • Francesco Veneziano <veneziano@dima.unige.it>
Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: María Inés de Frutos-Fernández, Yaël Dillies
 -/
 import Mathlib.Analysis.Normed.Field.Basic
+import Mathlib.Analysis.SpecialFunctions.Pow.Real
 
 #align_import analysis.normed.ring.seminorm from "leanprover-community/mathlib"@"7ea604785a41a0681eac70c5a82372493dbefc68"
 
@@ -319,6 +320,43 @@ theorem apply_one (x : R) : (1 : MulRingNorm R) x = if x = 0 then 0 else 1 :=
 instance : Inhabited (MulRingNorm R) :=
   ⟨1⟩
 
+
+variable {R : Type*} [Ring R]
+
+/-- Two multiplicative ring norms `f, g` on `R` are equivalent if there exists a positive constant
+  `c` such that for all `x ∈ R`, `(f x)^c = g x`.  -/
+
+def equiv (f : MulRingNorm R) (g : MulRingNorm R) :=
+  ∃ c : ℝ, 0 < c ∧ (fun x => (f x) ^ c) = g
+
+/- Equivalence of multiplicative ring norms is an equivalence relation
+
+  1. is reflexive-/
+lemma equiv_refl (f : MulRingNorm R) : equiv f f := by
+    exact ⟨1, Real.zero_lt_one, by simp only [Real.rpow_one]⟩
+/- Equivalence of multiplicative ring norms is an equivalence relation
+
+ 2. is symmetric-/
+lemma equiv_symm {f g : MulRingNorm R} (hfg : equiv f g) : equiv g f := by
+  rcases hfg with ⟨c, hcpos, h⟩
+  use 1/c
+  constructor
+  · simp only [one_div, inv_pos, hcpos]
+  ext x
+  simpa [← congr_fun h x] using Real.rpow_rpow_inv (apply_nonneg f x) (ne_of_lt hcpos).symm
+
+/- Equivalence of multiplicative ring norms is an equivalence relation
+
+ 3. is transitive-/
+lemma equiv_trans {f g k : MulRingNorm R} (hfg : equiv f g) (hgk : equiv g k) :
+    equiv f k := by
+  rcases hfg with ⟨c, hcPos, hfg⟩
+  rcases hgk with ⟨d, hdPos, hgk⟩
+  refine ⟨c*d, (mul_pos_iff_of_pos_left hcPos).mpr hdPos, ?_⟩
+  ext x
+  rw [Real.rpow_mul (apply_nonneg f x), congr_fun hfg x, congr_fun hgk x]
+
+
 end MulRingNorm
 
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
@@ -344,3 +382,15 @@ def RingSeminorm.toRingNorm {K : Type*} [Field K] (f : RingSeminorm K) (hnt : f
 def normRingNorm (R : Type*) [NonUnitalNormedRing R] : RingNorm R :=
   { normAddGroupNorm R, normRingSeminorm R with }
 #align norm_ring_norm normRingNorm
+
+
+/-A multiplicative ring norm satisfies `f n ≤ n` for every `n : ℕ`-/
+lemma MulRingNorm_nat_le_nat {R : Type*} [Ring R] (n : ℕ) (f : MulRingNorm R) : f n ≤ n := by
+  induction n with
+  | zero => simp only [Nat.cast_zero, map_zero, le_refl]
+  | succ n hn =>
+    simp only [Nat.cast_succ]
+    calc
+      f (n + 1) ≤ f (n) + f 1 := f.add_le' ↑n 1
+      _ = f (n) + 1 := by rw [map_one]
+      _ ≤ n + 1 := add_le_add_right hn 1
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
@@ -304,7 +304,6 @@ theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
 #align mul_ring_norm.ext MulRingNorm.ext
 
 variable (R)
-
 variable [DecidableEq R] [NoZeroDivisors R] [Nontrivial R]
 
 /-- The trivial norm on a ring `R` is the `MulRingNorm` taking value `0` at `0` and `1` at every
chore(NonnegHomClass): rename map_nonneg to apply_nonneg (#10507)

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

Diff
@@ -151,9 +151,9 @@ theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :
           rw [h]
           exact one_ne_zero⟩,
       fun h => ?_⟩
-  obtain hp0 | hp0 := (map_nonneg p (1 : R)).eq_or_gt
+  obtain hp0 | hp0 := (apply_nonneg p (1 : R)).eq_or_gt
   · exfalso
-    refine h (ext fun x => (map_nonneg _ _).antisymm' ?_)
+    refine h (ext fun x => (apply_nonneg _ _).antisymm' ?_)
     simpa only [hp0, mul_one, mul_zero] using map_mul_le_mul p x 1
   · refine' hp.antisymm ((le_mul_iff_one_le_left hp0).1 _)
     simpa only [one_mul] using map_mul_le_mul p (1 : R) _
@@ -336,7 +336,7 @@ def RingSeminorm.toRingNorm {K : Type*} [Field K] (f : RingSeminorm K) (hnt : f
             (le_trans (map_mul_le_mul f _ _)
               (by rw [← RingSeminorm.toFun_eq_coe, ← AddGroupSeminorm.toFun_eq_coe, hx,
                 zero_mul]))
-            (map_nonneg f _)
+            (apply_nonneg f _)
       exact hc hc0 }
 #align ring_seminorm.to_ring_norm RingSeminorm.toRingNorm
 
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
@@ -78,7 +78,7 @@ section NonUnitalRing
 
 variable [NonUnitalRing R]
 
-instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ where
+instance funLike : FunLike (RingSeminorm R) R ℝ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -86,16 +86,14 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ where
     congr
     ext x
     exact congr_fun h x
+
+instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ where
   map_zero f := f.map_zero'
   map_add_le_add f := f.add_le'
   map_mul_le_mul f := f.mul_le'
   map_neg_eq_map f := f.neg'
 #align ring_seminorm.ring_seminorm_class RingSeminorm.ringSeminormClass
 
-/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
-instance : CoeFun (RingSeminorm R) fun _ => R → ℝ :=
-  DFunLike.hasCoeToFun
-
 @[simp]
 theorem toFun_eq_coe (p : RingSeminorm R) : (p.toAddGroupSeminorm : R → ℝ) = p :=
   rfl
@@ -176,7 +174,7 @@ namespace RingNorm
 
 variable [NonUnitalRing R]
 
-instance ringNormClass : RingNormClass (RingNorm R) R ℝ where
+instance funLike : FunLike (RingNorm R) R ℝ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -184,6 +182,8 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ where
     congr
     ext x
     exact congr_fun h x
+
+instance ringNormClass : RingNormClass (RingNorm R) R ℝ where
   map_zero f := f.map_zero'
   map_add_le_add f := f.add_le'
   map_mul_le_mul f := f.mul_le'
@@ -191,14 +191,9 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ where
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero' _
 #align ring_norm.ring_norm_class RingNorm.ringNormClass
 
-/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
-instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
-  ⟨fun p => p.toFun⟩
-
--- Porting note: This is a syntactic tautology in Lean 4
--- @[simp]
--- theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p := rfl
-#noalign ring_norm.to_fun_eq_coe
+-- Porting note: This is no longer `@[simp]` in Lean 4
+theorem toFun_eq_coe (p : RingNorm R) : p.toFun = p := rfl
+#align ring_norm.to_fun_eq_coe RingNorm.toFun_eq_coe
 
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
@@ -226,7 +221,7 @@ namespace MulRingSeminorm
 
 variable [NonAssocRing R]
 
-instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ where
+instance funLike : FunLike (MulRingSeminorm R) R ℝ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -234,6 +229,8 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ w
     congr
     ext x
     exact congr_fun h x
+
+instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ where
   map_zero f := f.map_zero'
   map_one f := f.map_one'
   map_add_le_add f := f.add_le'
@@ -241,10 +238,6 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ w
   map_neg_eq_map f := f.neg'
 #align mul_ring_seminorm.mul_ring_seminorm_class MulRingSeminorm.mulRingSeminormClass
 
-/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
-instance : CoeFun (MulRingSeminorm R) fun _ => R → ℝ :=
-  DFunLike.hasCoeToFun
-
 @[simp]
 theorem toFun_eq_coe (p : MulRingSeminorm R) : (p.toAddGroupSeminorm : R → ℝ) = p :=
   rfl
@@ -283,7 +276,7 @@ namespace MulRingNorm
 
 variable [NonAssocRing R]
 
-instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ where
+instance funLike : FunLike (MulRingNorm R) R ℝ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -291,6 +284,8 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ where
     congr
     ext x
     exact congr_fun h x
+
+instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ where
   map_zero f := f.map_zero'
   map_one f := f.map_one'
   map_add_le_add f := f.add_le'
@@ -299,14 +294,9 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ where
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero' _
 #align mul_ring_norm.mul_ring_norm_class MulRingNorm.mulRingNormClass
 
-/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
-instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
-  ⟨fun p => p.toFun⟩
-
--- Porting note: This is a syntactic tautology in Lean 4
--- @[simp]
--- theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p := rfl
-#noalign mul_ring_norm.to_fun_eq_coe
+-- Porting note: This no longer in `@[simp]`-normal form in Lean 4
+theorem toFun_eq_coe (p : MulRingNorm R) : p.toFun = p := rfl
+#align mul_ring_norm.to_fun_eq_coe MulRingNorm.toFun_eq_coe
 
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
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
@@ -92,9 +92,9 @@ instance ringSeminormClass : RingSeminormClass (RingSeminorm R) R ℝ where
   map_neg_eq_map f := f.neg'
 #align ring_seminorm.ring_seminorm_class RingSeminorm.ringSeminormClass
 
-/-- Helper instance for when there's too many metavariables to apply `FunLike.hasCoeToFun`. -/
+/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
 instance : CoeFun (RingSeminorm R) fun _ => R → ℝ :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 @[simp]
 theorem toFun_eq_coe (p : RingSeminorm R) : (p.toAddGroupSeminorm : R → ℝ) = p :=
@@ -103,7 +103,7 @@ theorem toFun_eq_coe (p : RingSeminorm R) : (p.toAddGroupSeminorm : R → ℝ) =
 
 @[ext]
 theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align ring_seminorm.ext RingSeminorm.ext
 
 instance : Zero (RingSeminorm R) :=
@@ -111,7 +111,7 @@ instance : Zero (RingSeminorm R) :=
     fun _ _ => (zero_mul _).ge }⟩
 
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align ring_seminorm.eq_zero_iff RingSeminorm.eq_zero_iff
 
 theorem ne_zero_iff {p : RingSeminorm R} : p ≠ 0 ↔ ∃ x, p x ≠ 0 := by simp [eq_zero_iff]
@@ -191,7 +191,7 @@ instance ringNormClass : RingNormClass (RingNorm R) R ℝ where
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero' _
 #align ring_norm.ring_norm_class RingNorm.ringNormClass
 
-/-- Helper instance for when there's too many metavariables to apply `FunLike.hasCoeToFun`. -/
+/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
 instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
@@ -202,7 +202,7 @@ instance : CoeFun (RingNorm R) fun _ => R → ℝ :=
 
 @[ext]
 theorem ext {p q : RingNorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align ring_norm.ext RingNorm.ext
 
 variable (R)
@@ -241,9 +241,9 @@ instance mulRingSeminormClass : MulRingSeminormClass (MulRingSeminorm R) R ℝ w
   map_neg_eq_map f := f.neg'
 #align mul_ring_seminorm.mul_ring_seminorm_class MulRingSeminorm.mulRingSeminormClass
 
-/-- Helper instance for when there's too many metavariables to apply `FunLike.hasCoeToFun`. -/
+/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
 instance : CoeFun (MulRingSeminorm R) fun _ => R → ℝ :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 @[simp]
 theorem toFun_eq_coe (p : MulRingSeminorm R) : (p.toAddGroupSeminorm : R → ℝ) = p :=
@@ -252,7 +252,7 @@ theorem toFun_eq_coe (p : MulRingSeminorm R) : (p.toAddGroupSeminorm : R → ℝ
 
 @[ext]
 theorem ext {p q : MulRingSeminorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align mul_ring_seminorm.ext MulRingSeminorm.ext
 
 variable [DecidableEq R] [NoZeroDivisors R] [Nontrivial R]
@@ -299,7 +299,7 @@ instance mulRingNormClass : MulRingNormClass (MulRingNorm R) R ℝ where
   eq_zero_of_map_eq_zero f := f.eq_zero_of_map_eq_zero' _
 #align mul_ring_norm.mul_ring_norm_class MulRingNorm.mulRingNormClass
 
-/-- Helper instance for when there's too many metavariables to apply `FunLike.hasCoeToFun`. -/
+/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
 instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
   ⟨fun p => p.toFun⟩
 
@@ -310,7 +310,7 @@ instance : CoeFun (MulRingNorm R) fun _ => R → ℝ :=
 
 @[ext]
 theorem ext {p q : MulRingNorm R} : (∀ x, p x = q x) → p = q :=
-  FunLike.ext p q
+  DFunLike.ext p q
 #align mul_ring_norm.ext MulRingNorm.ext
 
 variable (R)
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -108,7 +108,7 @@ theorem ext {p q : RingSeminorm R} : (∀ x, p x = q x) → p = q :=
 
 instance : Zero (RingSeminorm R) :=
   ⟨{ AddGroupSeminorm.instZeroAddGroupSeminorm.zero with mul_le' :=
-    fun _ _ => (MulZeroClass.zero_mul _).ge }⟩
+    fun _ _ => (zero_mul _).ge }⟩
 
 theorem eq_zero_iff {p : RingSeminorm R} : p = 0 ↔ ∀ x, p x = 0 :=
   FunLike.ext_iff
@@ -156,7 +156,7 @@ theorem seminorm_one_eq_one_iff_ne_zero (hp : p 1 ≤ 1) : p 1 = 1 ↔ p ≠ 0 :
   obtain hp0 | hp0 := (map_nonneg p (1 : R)).eq_or_gt
   · exfalso
     refine h (ext fun x => (map_nonneg _ _).antisymm' ?_)
-    simpa only [hp0, mul_one, MulZeroClass.mul_zero] using map_mul_le_mul p x 1
+    simpa only [hp0, mul_one, mul_zero] using map_mul_le_mul p x 1
   · refine' hp.antisymm ((le_mul_iff_one_le_left hp0).1 _)
     simpa only [one_mul] using map_mul_le_mul p (1 : R) _
 #align ring_seminorm.seminorm_one_eq_one_iff_ne_zero RingSeminorm.seminorm_one_eq_one_iff_ne_zero
@@ -345,7 +345,7 @@ def RingSeminorm.toRingNorm {K : Type*} [Field K] (f : RingSeminorm K) (hnt : f
           le_antisymm
             (le_trans (map_mul_le_mul f _ _)
               (by rw [← RingSeminorm.toFun_eq_coe, ← AddGroupSeminorm.toFun_eq_coe, hx,
-                MulZeroClass.zero_mul]))
+                zero_mul]))
             (map_nonneg f _)
       exact hc hc0 }
 #align ring_seminorm.to_ring_norm RingSeminorm.toRingNorm
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
@@ -40,11 +40,11 @@ ring_seminorm, ring_norm
 
 open NNReal
 
-variable {F R S : Type _} (x y : R) (r : ℝ)
+variable {F R S : Type*} (x y : R) (r : ℝ)
 
 /-- A seminorm on a ring `R` is a function `f : R → ℝ` that preserves zero, takes nonnegative
   values, is subadditive and submultiplicative and such that `f (-x) = f x` for all `x ∈ R`. -/
-structure RingSeminorm (R : Type _) [NonUnitalNonAssocRing R] extends AddGroupSeminorm R where
+structure RingSeminorm (R : Type*) [NonUnitalNonAssocRing R] extends AddGroupSeminorm R where
   /-- The property of a `RingSeminorm` that for all `x` and `y` in the ring, the norm of `x * y` is
     less than the norm of `x` times the norm of `y`. -/
   mul_le' : ∀ x y : R, toFun (x * y) ≤ toFun x * toFun y
@@ -52,19 +52,19 @@ structure RingSeminorm (R : Type _) [NonUnitalNonAssocRing R] extends AddGroupSe
 
 /-- A function `f : R → ℝ` is a norm on a (nonunital) ring if it is a seminorm and `f x = 0`
   implies `x = 0`. -/
-structure RingNorm (R : Type _) [NonUnitalNonAssocRing R] extends RingSeminorm R, AddGroupNorm R
+structure RingNorm (R : Type*) [NonUnitalNonAssocRing R] extends RingSeminorm R, AddGroupNorm R
 #align ring_norm RingNorm
 
 /-- A multiplicative seminorm on a ring `R` is a function `f : R → ℝ` that preserves zero and
 multiplication, takes nonnegative values, is subadditive and such that `f (-x) = f x` for all `x`.
 -/
-structure MulRingSeminorm (R : Type _) [NonAssocRing R] extends AddGroupSeminorm R,
+structure MulRingSeminorm (R : Type*) [NonAssocRing R] extends AddGroupSeminorm R,
   MonoidWithZeroHom R ℝ
 #align mul_ring_seminorm MulRingSeminorm
 
 /-- A multiplicative norm on a ring `R` is a multiplicative ring seminorm such that `f x = 0`
 implies `x = 0`. -/
-structure MulRingNorm (R : Type _) [NonAssocRing R] extends MulRingSeminorm R, AddGroupNorm R
+structure MulRingNorm (R : Type*) [NonAssocRing R] extends MulRingSeminorm R, AddGroupNorm R
 #align mul_ring_norm MulRingNorm
 
 attribute [nolint docBlame]
@@ -166,7 +166,7 @@ end Ring
 end RingSeminorm
 
 /-- The norm of a `NonUnitalSeminormedRing` as a `RingSeminorm`. -/
-def normRingSeminorm (R : Type _) [NonUnitalSeminormedRing R] : RingSeminorm R :=
+def normRingSeminorm (R : Type*) [NonUnitalSeminormedRing R] : RingSeminorm R :=
   { normAddGroupSeminorm R with
     toFun := norm
     mul_le' := norm_mul_le }
@@ -333,7 +333,7 @@ instance : Inhabited (MulRingNorm R) :=
 end MulRingNorm
 
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
-def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f ≠ 0) :
+def RingSeminorm.toRingNorm {K : Type*} [Field K] (f : RingSeminorm K) (hnt : f ≠ 0) :
     RingNorm K :=
   { f with
     eq_zero_of_map_eq_zero' := fun x hx => by
@@ -352,6 +352,6 @@ def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f
 
 /-- The norm of a `NonUnitalNormedRing` as a `RingNorm`. -/
 @[simps!]
-def normRingNorm (R : Type _) [NonUnitalNormedRing R] : RingNorm R :=
+def normRingNorm (R : Type*) [NonUnitalNormedRing R] : RingNorm R :=
   { normAddGroupNorm R, normRingSeminorm R with }
 #align norm_ring_norm normRingNorm
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,14 +2,11 @@
 Copyright (c) 2022 María Inés de Frutos-Fernández. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: María Inés de Frutos-Fernández, Yaël Dillies
-
-! This file was ported from Lean 3 source module analysis.normed.ring.seminorm
-! leanprover-community/mathlib commit 7ea604785a41a0681eac70c5a82372493dbefc68
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Normed.Field.Basic
 
+#align_import analysis.normed.ring.seminorm from "leanprover-community/mathlib"@"7ea604785a41a0681eac70c5a82372493dbefc68"
+
 /-!
 # Seminorms and norms on rings
 
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -129,8 +129,7 @@ instance [DecidableEq R] : One (RingSeminorm R) :=
   ⟨{ (1 : AddGroupSeminorm R) with
       mul_le' := fun x y => by
         by_cases h : x * y = 0
-        ·
-          refine' (if_pos h).trans_le (mul_nonneg _ _) <;>
+        · refine' (if_pos h).trans_le (mul_nonneg _ _) <;>
             · change _ ≤ ite _ _ _
               split_ifs
               exacts [le_rfl, zero_le_one]
chore: add space after exacts (#4945)

Too often tempted to change these during other PRs, so doing a mass edit here.

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

Diff
@@ -133,7 +133,7 @@ instance [DecidableEq R] : One (RingSeminorm R) :=
           refine' (if_pos h).trans_le (mul_nonneg _ _) <;>
             · change _ ≤ ite _ _ _
               split_ifs
-              exacts[le_rfl, zero_le_one]
+              exacts [le_rfl, zero_le_one]
         · change ite _ _ _ ≤ ite _ _ _ * ite _ _ _
           simp only [if_false, h, left_ne_zero_of_mul h, right_ne_zero_of_mul h, mul_one,
             le_refl] }⟩
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

Now that leanprover/lean4#2210 has been merged, this PR:

  • removes all the set_option synthInstance.etaExperiment true commands (and some etaExperiment% term elaborators)
  • removes many but not quite all set_option maxHeartbeats commands
  • makes various other changes required to cope with leanprover/lean4#2210.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -336,7 +336,6 @@ instance : Inhabited (MulRingNorm R) :=
 
 end MulRingNorm
 
-set_option synthInstance.etaExperiment true in
 /-- A nonzero ring seminorm on a field `K` is a ring norm. -/
 def RingSeminorm.toRingNorm {K : Type _} [Field K] (f : RingSeminorm K) (hnt : f ≠ 0) :
     RingNorm K :=
feat: port Analysis.Normed.Ring.Seminorm (#3211)

This is currently stuck on an issue as indicated in line 111. edit: fixed by the etaExperiment option

Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: int-y1 <jason_yuen2007@hotmail.com>

Dependencies 10 + 601

602 files ported (98.4%)
262699 lines ported (98.0%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file