algebra.monoid_algebra.degreeMathlib.Algebra.MonoidAlgebra.Degree

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -160,7 +160,7 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
     m.Prod.support.sup degb ≤ (m.map fun f : AddMonoidAlgebra R A => f.support.sup degb).Sum :=
   by
   induction m using Quot.inductionOn
-  rw [Multiset.quot_mk_to_coe'', Multiset.coe_map, Multiset.coe_sum, Multiset.coe_prod]
+  rw [Multiset.quot_mk_to_coe'', Multiset.map_coe, Multiset.sum_coe, Multiset.prod_coe]
   exact sup_support_list_prod_le degb0 degbm m
 #align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_le
 -/
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
 -/
-import Mathbin.Algebra.MonoidAlgebra.Support
+import Algebra.MonoidAlgebra.Support
 
 #align_import algebra.monoid_algebra.degree from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.degree
-! leanprover-community/mathlib commit 932872382355f00112641d305ba0619305dc8642
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.MonoidAlgebra.Support
 
+#align_import algebra.monoid_algebra.degree from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
+
 /-!
 # Lemmas about the `sup` and `inf` of the support of `add_monoid_algebra`
 
Diff
@@ -52,13 +52,17 @@ a type with *b*ot or *t*op respectively.
 
 variable (degb : A → B) (degt : A → T) (f g : AddMonoidAlgebra R A)
 
+#print AddMonoidAlgebra.sup_support_add_le /-
 theorem sup_support_add_le : (f + g).support.sup degb ≤ f.support.sup degb ⊔ g.support.sup degb :=
   (Finset.sup_mono Finsupp.support_add).trans_eq Finset.sup_union
 #align add_monoid_algebra.sup_support_add_le AddMonoidAlgebra.sup_support_add_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_add /-
 theorem le_inf_support_add : f.support.inf degt ⊓ g.support.inf degt ≤ (f + g).support.inf degt :=
   sup_support_add_le (fun a : A => OrderDual.toDual (degt a)) f g
 #align add_monoid_algebra.le_inf_support_add AddMonoidAlgebra.le_inf_support_add
+-/
 
 end ExplicitDegrees
 
@@ -99,6 +103,7 @@ variable [AddMonoid A] [AddMonoid B] [CovariantClass B B (· + ·) (· ≤ ·)]
   {degb : A → B} {degt : A → T}
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print AddMonoidAlgebra.sup_support_list_prod_le /-
 theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) :
     ∀ l : List (AddMonoidAlgebra R A),
@@ -110,7 +115,9 @@ theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     rw [List.prod_cons, List.map_cons, List.sum_cons]
     exact (sup_support_mul_le degbm _ _).trans (add_le_add_left (sup_support_list_prod_le _) _)
 #align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_list_prod /-
 theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (l : List (AddMonoidAlgebra R A)) :
     (l.map fun f : AddMonoidAlgebra R A => f.support.inf degt).Sum ≤ l.Prod.support.inf degt :=
@@ -118,7 +125,9 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
     sup_support_list_prod_le (OrderDual.ofDual_le_ofDual.mp degt0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) l
 #align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prod
+-/
 
+#print AddMonoidAlgebra.sup_support_pow_le /-
 theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b)
     (n : ℕ) (f : AddMonoidAlgebra R A) : (f ^ n).support.sup degb ≤ n • f.support.sup degb :=
   by
@@ -126,13 +135,16 @@ theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b)
   refine' (sup_support_list_prod_le degb0 degbm _).trans_eq _
   rw [List.map_replicate]
 #align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_pow /-
 theorem le_inf_support_pow (degt0 : 0 ≤ degt 0) (degtm : ∀ a b, degt a + degt b ≤ degt (a + b))
     (n : ℕ) (f : AddMonoidAlgebra R A) : n • f.support.inf degt ≤ (f ^ n).support.inf degt :=
   OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_pow_le (OrderDual.ofDual_le_ofDual.mp degt0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) n f
 #align add_monoid_algebra.le_inf_support_pow AddMonoidAlgebra.le_inf_support_pow
+-/
 
 end AddMonoids
 
@@ -145,6 +157,7 @@ variable [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [CovariantClass B
   [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   {degb : A → B} {degt : A → T}
 
+#print AddMonoidAlgebra.sup_support_multiset_prod_le /-
 theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset (AddMonoidAlgebra R A)) :
     m.Prod.support.sup degb ≤ (m.map fun f : AddMonoidAlgebra R A => f.support.sup degb).Sum :=
@@ -153,7 +166,9 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
   rw [Multiset.quot_mk_to_coe'', Multiset.coe_map, Multiset.coe_sum, Multiset.coe_prod]
   exact sup_support_list_prod_le degb0 degbm m
 #align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_multiset_prod /-
 theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (m : Multiset (AddMonoidAlgebra R A)) :
     (m.map fun f : AddMonoidAlgebra R A => f.support.inf degt).Sum ≤ m.Prod.support.inf degt :=
@@ -161,18 +176,23 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
     sup_support_multiset_prod_le (OrderDual.ofDual_le_ofDual.mp degt0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) m
 #align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prod
+-/
 
+#print AddMonoidAlgebra.sup_support_finset_prod_le /-
 theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
     (∏ i in s, f i).support.sup degb ≤ ∑ i in s, (f i).support.sup degb :=
   (sup_support_multiset_prod_le degb0 degbm _).trans_eq <| congr_arg _ <| Multiset.map_map _ _ _
 #align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_finset_prod /-
 theorem le_inf_support_finset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
     ∑ i in s, (f i).support.inf degt ≤ (∏ i in s, f i).support.inf degt :=
   le_of_eq_of_le (by rw [Multiset.map_map] <;> rfl) (le_inf_support_multiset_prod degt0 degtm _)
 #align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prod
+-/
 
 end CommutativeLemmas
 
Diff
@@ -170,7 +170,7 @@ theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
 
 theorem le_inf_support_finset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
-    (∑ i in s, (f i).support.inf degt) ≤ (∏ i in s, f i).support.inf degt :=
+    ∑ i in s, (f i).support.inf degt ≤ (∏ i in s, f i).support.inf degt :=
   le_of_eq_of_le (by rw [Multiset.map_map] <;> rfl) (le_inf_support_multiset_prod degt0 degtm _)
 #align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prod
 
Diff
@@ -28,7 +28,7 @@ variable {R A T B ι : Type _}
 
 namespace AddMonoidAlgebra
 
-open Classical BigOperators
+open scoped Classical BigOperators
 
 /-! ### Results about the `finset.sup` and `finset.inf` of `finsupp.support` -/
 
@@ -68,6 +68,7 @@ variable [Add A] [Add B] [Add T] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)] [CovariantClass T T (· + ·) (· ≤ ·)]
   [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
 
+#print AddMonoidAlgebra.sup_support_mul_le /-
 theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤ degb a + degb b)
     (f g : AddMonoidAlgebra R A) :
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb :=
@@ -77,13 +78,16 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
   refine' Finset.sup_le fun fd fds => Finset.sup_le fun gd gds => degbm.trans <| add_le_add _ _ <;>
     exact Finset.le_sup ‹_›
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_mul /-
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
     (f g : AddMonoidAlgebra R A) :
     f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt :=
   OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_mul_le (fun a b => OrderDual.ofDual_le_ofDual.mp degtm) f g
 #align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mul
+-/
 
 end AddOnly
 
Diff
@@ -52,22 +52,10 @@ a type with *b*ot or *t*op respectively.
 
 variable (degb : A → B) (degt : A → T) (f g : AddMonoidAlgebra R A)
 
-/- warning: add_monoid_algebra.sup_support_add_le -> AddMonoidAlgebra.sup_support_add_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toHasSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degb))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u1, u2} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degb))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_add_le AddMonoidAlgebra.sup_support_add_leₓ'. -/
 theorem sup_support_add_le : (f + g).support.sup degb ≤ f.support.sup degb ⊔ g.support.sup degb :=
   (Finset.sup_mono Finsupp.support_add).trans_eq Finset.sup_union
 #align add_monoid_algebra.sup_support_add_le AddMonoidAlgebra.sup_support_add_le
 
-/- warning: add_monoid_algebra.le_inf_support_add -> AddMonoidAlgebra.le_inf_support_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toHasInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degt)
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u1, u2} R A _inst_5))))) f g)) degt)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_add AddMonoidAlgebra.le_inf_support_addₓ'. -/
 theorem le_inf_support_add : f.support.inf degt ⊓ g.support.inf degt ≤ (f + g).support.inf degt :=
   sup_support_add_le (fun a : A => OrderDual.toDual (degt a)) f g
 #align add_monoid_algebra.le_inf_support_add AddMonoidAlgebra.le_inf_support_add
@@ -80,12 +68,6 @@ variable [Add A] [Add B] [Add T] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)] [CovariantClass T T (· + ·) (· ≤ ·)]
   [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
 
-/- warning: add_monoid_algebra.sup_support_mul_le -> AddMonoidAlgebra.sup_support_mul_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_7 : Add.{u3} B] [_inst_9 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7)) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_10 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (forall {a : A} {b : A}, LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (degb a) (degb b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degb) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degb)))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_7 : Add.{u3} B] [_inst_9 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.446 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.448 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.446 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.448) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.461 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.463 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.461 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.463)] [_inst_10 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.483 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.485 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.483 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.485)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.498 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.500 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.498 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.500)] {degb : A -> B}, (forall {a : A} {b : A}, LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (degb a) (degb b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degb) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degb)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_leₓ'. -/
 theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤ degb a + degb b)
     (f g : AddMonoidAlgebra R A) :
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb :=
@@ -96,12 +78,6 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
     exact Finset.le_sup ‹_›
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
 
-/- warning: add_monoid_algebra.le_inf_support_mul -> AddMonoidAlgebra.le_inf_support_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_8 : Add.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8)) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (forall {a : A} {b : A}, LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degt))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_8 : Add.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.804 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.806 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.804 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.806) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.819 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.821 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.819 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.821)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.841 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.843 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.841 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.843)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.856 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.858 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.856 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.858)] {degt : A -> T}, (forall {a : A} {b : A}, LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degt))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mulₓ'. -/
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
     (f g : AddMonoidAlgebra R A) :
     f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt :=
@@ -118,12 +94,6 @@ variable [AddMonoid A] [AddMonoid B] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   {degb : A → B} {degt : A → T}
 
-/- warning: add_monoid_algebra.sup_support_list_prod_le -> AddMonoidAlgebra.sup_support_list_prod_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degb) (List.sum.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) l)))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1155 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1155 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1170 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1170 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1192 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1192 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1207 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1207 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degb) (List.sum.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddMonoid.toZero.{u3} B _inst_7) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) l)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_leₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) :
@@ -137,12 +107,6 @@ theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     exact (sup_support_mul_le degbm _ _).trans (add_le_add_left (sup_support_list_prod_le _) _)
 #align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_le
 
-/- warning: add_monoid_algebra.le_inf_support_list_prod -> AddMonoidAlgebra.le_inf_support_list_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degt))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1636 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1636 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1651 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1651 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1673 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1673 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1688 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1688 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddMonoid.toZero.{u3} T _inst_10) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degt))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prodₓ'. -/
 theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (l : List (AddMonoidAlgebra R A)) :
     (l.map fun f : AddMonoidAlgebra R A => f.support.inf degt).Sum ≤ l.Prod.support.inf degt :=
@@ -151,9 +115,6 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) l
 #align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prod
 
-/- warning: add_monoid_algebra.sup_support_pow_le -> AddMonoidAlgebra.sup_support_pow_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_leₓ'. -/
 theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b)
     (n : ℕ) (f : AddMonoidAlgebra R A) : (f ^ n).support.sup degb ≤ n • f.support.sup degb :=
   by
@@ -162,12 +123,6 @@ theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b)
   rw [List.map_replicate]
 #align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_le
 
-/- warning: add_monoid_algebra.le_inf_support_pow -> AddMonoidAlgebra.le_inf_support_pow is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (SMul.smul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2196 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2196 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2211 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2211 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2233 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2233 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2248 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2248 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HSMul.hSMul.{0, u3, u3} Nat T T (instHSMul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10)) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_pow AddMonoidAlgebra.le_inf_support_powₓ'. -/
 theorem le_inf_support_pow (degt0 : 0 ≤ degt 0) (degtm : ∀ a b, degt a + degt b ≤ degt (a + b))
     (n : ℕ) (f : AddMonoidAlgebra R A) : n • f.support.inf degt ≤ (f ^ n).support.inf degt :=
   OrderDual.ofDual_le_ofDual.mpr <|
@@ -186,12 +141,6 @@ variable [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [CovariantClass B
   [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   {degb : A → B} {degt : A → T}
 
-/- warning: add_monoid_algebra.sup_support_multiset_prod_le -> AddMonoidAlgebra.sup_support_multiset_prod_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degb) m)))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2569 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2569 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2584 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2584 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2606 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2606 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2621 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2621 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degb) m)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_leₓ'. -/
 theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset (AddMonoidAlgebra R A)) :
     m.Prod.support.sup degb ≤ (m.map fun f : AddMonoidAlgebra R A => f.support.sup degb).Sum :=
@@ -201,12 +150,6 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
   exact sup_support_list_prod_le degb0 degbm m
 #align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_le
 
-/- warning: add_monoid_algebra.le_inf_support_multiset_prod -> AddMonoidAlgebra.le_inf_support_multiset_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2915 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2915 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2930 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2930 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2952 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2952 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2967 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2967 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prodₓ'. -/
 theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (m : Multiset (AddMonoidAlgebra R A)) :
     (m.map fun f : AddMonoidAlgebra R A => f.support.inf degt).Sum ≤ m.Prod.support.inf degt :=
@@ -215,24 +158,12 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) m
 #align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prod
 
-/- warning: add_monoid_algebra.sup_support_finset_prod_le -> AddMonoidAlgebra.sup_support_finset_prod_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {ι : Type.{u4}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u3, u4} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degb)))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {ι : Type.{u2}} [_inst_1 : SemilatticeSup.{u4} B] [_inst_2 : OrderBot.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_7 : AddCommMonoid.{u4} B] [_inst_8 : CovariantClass.{u4, u4} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3099 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3099 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3114 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3114 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116)] [_inst_9 : CovariantClass.{u4, u4} B B (Function.swap.{succ u4, succ u4, succ u4} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3136 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3136 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3151 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3151 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153)] {degb : A -> B}, (LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6))))) (OfNat.ofNat.{u4} B 0 (Zero.toOfNat0.{u4} B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b)) (HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u4, u2} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degb)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_leₓ'. -/
 theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
     (∏ i in s, f i).support.sup degb ≤ ∑ i in s, (f i).support.sup degb :=
   (sup_support_multiset_prod_le degb0 degbm _).trans_eq <| congr_arg _ <| Multiset.map_map _ _ _
 #align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_le
 
-/- warning: add_monoid_algebra.le_inf_support_finset_prod -> AddMonoidAlgebra.le_inf_support_finset_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} {ι : Type.{u4}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Finset.sum.{u3, u4} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {T : Type.{u4}} {ι : Type.{u2}} [_inst_3 : SemilatticeInf.{u4} T] [_inst_4 : OrderTop.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_10 : AddCommMonoid.{u4} T] [_inst_11 : CovariantClass.{u4, u4} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3434 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3434 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3449 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3449 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451)] [_inst_12 : CovariantClass.{u4, u4} T T (Function.swap.{succ u4, succ u4, succ u4} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3471 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3471 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3486 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3486 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488)] {degt : A -> T}, (LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (OfNat.ofNat.{u4} T 0 (Zero.toOfNat0.{u4} T (AddMonoid.toZero.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (Finset.sum.{u4, u2} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degt)) (Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prodₓ'. -/
 theorem le_inf_support_finset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
     (∑ i in s, (f i).support.inf degt) ≤ (∏ i in s, f i).support.inf degt :=
Diff
@@ -152,10 +152,7 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
 #align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prod
 
 /- warning: add_monoid_algebra.sup_support_pow_le -> AddMonoidAlgebra.sup_support_pow_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (SMul.smul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb)))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1826 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1826 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1841 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1841 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1863 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1863 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1878 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1878 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (HSMul.hSMul.{0, u3, u3} Nat B B (instHSMul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7)) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_leₓ'. -/
 theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b)
     (n : ℕ) (f : AddMonoidAlgebra R A) : (f ^ n).support.sup degb ≤ n • f.support.sup degb :=
Diff
@@ -54,7 +54,7 @@ variable (degb : A → B) (degt : A → T) (f g : AddMonoidAlgebra R A)
 
 /- warning: add_monoid_algebra.sup_support_add_le -> AddMonoidAlgebra.sup_support_add_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toHasSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degb))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toHasSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degb))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u1, u2} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degb))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_add_le AddMonoidAlgebra.sup_support_add_leₓ'. -/
@@ -64,7 +64,7 @@ theorem sup_support_add_le : (f + g).support.sup degb ≤ f.support.sup degb ⊔
 
 /- warning: add_monoid_algebra.le_inf_support_add -> AddMonoidAlgebra.le_inf_support_add is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toHasInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degt)
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toHasInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degt)
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u1, u2} R A _inst_5))))) f g)) degt)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_add AddMonoidAlgebra.le_inf_support_addₓ'. -/
@@ -80,7 +80,12 @@ variable [Add A] [Add B] [Add T] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)] [CovariantClass T T (· + ·) (· ≤ ·)]
   [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
 
-#print AddMonoidAlgebra.sup_support_mul_le /-
+/- warning: add_monoid_algebra.sup_support_mul_le -> AddMonoidAlgebra.sup_support_mul_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_7 : Add.{u3} B] [_inst_9 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7)) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_10 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (forall {a : A} {b : A}, LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (degb a) (degb b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degb) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degb)))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_7 : Add.{u3} B] [_inst_9 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.446 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.448 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.446 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.448) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.461 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.463 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.461 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.463)] [_inst_10 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.483 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.485 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.483 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.485)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.498 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.500 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.498 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.500)] {degb : A -> B}, (forall {a : A} {b : A}, LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (degb a) (degb b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degb) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B _inst_7) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degb)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_leₓ'. -/
 theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤ degb a + degb b)
     (f g : AddMonoidAlgebra R A) :
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb :=
@@ -90,16 +95,19 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
   refine' Finset.sup_le fun fd fds => Finset.sup_le fun gd gds => degbm.trans <| add_le_add _ _ <;>
     exact Finset.le_sup ‹_›
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
--/
 
-#print AddMonoidAlgebra.le_inf_support_mul /-
+/- warning: add_monoid_algebra.le_inf_support_mul -> AddMonoidAlgebra.le_inf_support_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_8 : Add.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8)) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (forall {a : A} {b : A}, LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degt))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : Add.{u2} A] [_inst_8 : Add.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.804 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.806 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.804 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.806) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.819 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.821 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.819 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.821)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.841 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.843 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.841 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.843)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.856 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.858 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.856 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.858)] {degt : A -> T}, (forall {a : A} {b : A}, LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A _inst_6) a b))) -> (forall (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T _inst_8) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 _inst_6)) f g)) degt))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mulₓ'. -/
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
     (f g : AddMonoidAlgebra R A) :
     f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt :=
   OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_mul_le (fun a b => OrderDual.ofDual_le_ofDual.mp degtm) f g
 #align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mul
--/
 
 end AddOnly
 
@@ -112,7 +120,7 @@ variable [AddMonoid A] [AddMonoid B] [CovariantClass B B (· + ·) (· ≤ ·)]
 
 /- warning: add_monoid_algebra.sup_support_list_prod_le -> AddMonoidAlgebra.sup_support_list_prod_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degb) (List.sum.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) l)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degb) (List.sum.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) l)))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1155 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1155 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1170 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1170 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1192 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1192 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1207 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1207 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degb) (List.sum.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddMonoid.toZero.{u3} B _inst_7) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) l)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_leₓ'. -/
@@ -131,7 +139,7 @@ theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
 
 /- warning: add_monoid_algebra.le_inf_support_list_prod -> AddMonoidAlgebra.le_inf_support_list_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degt))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1636 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1636 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1651 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1651 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1673 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1673 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1688 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1688 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddMonoid.toZero.{u3} T _inst_10) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prodₓ'. -/
@@ -145,7 +153,7 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
 
 /- warning: add_monoid_algebra.sup_support_pow_le -> AddMonoidAlgebra.sup_support_pow_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (SMul.smul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (SMul.smul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb)))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1826 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1826 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1841 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1841 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1863 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1863 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1878 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1878 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (HSMul.hSMul.{0, u3, u3} Nat B B (instHSMul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7)) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_leₓ'. -/
@@ -159,7 +167,7 @@ theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b)
 
 /- warning: add_monoid_algebra.le_inf_support_pow -> AddMonoidAlgebra.le_inf_support_pow is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (SMul.smul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (SMul.smul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2196 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2196 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2211 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2211 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2233 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2233 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2248 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2248 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HSMul.hSMul.{0, u3, u3} Nat T T (instHSMul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10)) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_pow AddMonoidAlgebra.le_inf_support_powₓ'. -/
@@ -183,7 +191,7 @@ variable [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [CovariantClass B
 
 /- warning: add_monoid_algebra.sup_support_multiset_prod_le -> AddMonoidAlgebra.sup_support_multiset_prod_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degb) m)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degb) m)))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2569 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2569 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2584 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2584 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2606 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2606 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2621 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2621 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degb) m)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_leₓ'. -/
@@ -198,7 +206,7 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
 
 /- warning: add_monoid_algebra.le_inf_support_multiset_prod -> AddMonoidAlgebra.le_inf_support_multiset_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2915 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2915 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2930 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2930 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2952 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2952 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2967 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2967 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prodₓ'. -/
@@ -212,7 +220,7 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
 
 /- warning: add_monoid_algebra.sup_support_finset_prod_le -> AddMonoidAlgebra.sup_support_finset_prod_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {ι : Type.{u4}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u3, u4} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degb)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {ι : Type.{u4}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toHasLe.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u3, u4} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degb)))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {ι : Type.{u2}} [_inst_1 : SemilatticeSup.{u4} B] [_inst_2 : OrderBot.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_7 : AddCommMonoid.{u4} B] [_inst_8 : CovariantClass.{u4, u4} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3099 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3099 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3114 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3114 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116)] [_inst_9 : CovariantClass.{u4, u4} B B (Function.swap.{succ u4, succ u4, succ u4} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3136 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3136 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3151 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3151 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153)] {degb : A -> B}, (LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6))))) (OfNat.ofNat.{u4} B 0 (Zero.toOfNat0.{u4} B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b)) (HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u4, u2} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degb)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_leₓ'. -/
@@ -224,7 +232,7 @@ theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
 
 /- warning: add_monoid_algebra.le_inf_support_finset_prod -> AddMonoidAlgebra.le_inf_support_finset_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} {ι : Type.{u4}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Finset.sum.{u3, u4} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} {ι : Type.{u4}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toHasLe.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Finset.sum.{u3, u4} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
 but is expected to have type
   forall {R : Type.{u1}} {A : Type.{u3}} {T : Type.{u4}} {ι : Type.{u2}} [_inst_3 : SemilatticeInf.{u4} T] [_inst_4 : OrderTop.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_10 : AddCommMonoid.{u4} T] [_inst_11 : CovariantClass.{u4, u4} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3434 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3434 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3449 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3449 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451)] [_inst_12 : CovariantClass.{u4, u4} T T (Function.swap.{succ u4, succ u4, succ u4} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3471 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3471 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3486 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3486 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488)] {degt : A -> T}, (LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (OfNat.ofNat.{u4} T 0 (Zero.toOfNat0.{u4} T (AddMonoid.toZero.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (Finset.sum.{u4, u2} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degt)) (Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prodₓ'. -/
Diff
@@ -86,7 +86,7 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb :=
   by
   refine' (Finset.sup_mono <| support_mul _ _).trans _
-  simp_rw [Finset.sup_bunionᵢ, Finset.sup_singleton]
+  simp_rw [Finset.sup_biUnion, Finset.sup_singleton]
   refine' Finset.sup_le fun fd fds => Finset.sup_le fun gd gds => degbm.trans <| add_le_add _ _ <;>
     exact Finset.le_sup ‹_›
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
Diff
@@ -114,7 +114,7 @@ variable [AddMonoid A] [AddMonoid B] [CovariantClass B B (· + ·) (· ≤ ·)]
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degb) (List.sum.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) l)))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1159 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1159) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1174 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1174)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1196 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1196)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1211 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1211)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degb) (List.sum.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddMonoid.toZero.{u3} B _inst_7) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) l)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1155 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1155 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1170 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1170 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1192 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1192 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1207 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1207 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degb) (List.sum.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddMonoid.toZero.{u3} B _inst_7) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) l)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_leₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
@@ -133,7 +133,7 @@ theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degt))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1640 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1640) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1655 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1655)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1677 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1677)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1692 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1692)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddMonoid.toZero.{u3} T _inst_10) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1636 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1636 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1651 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1651 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1673 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1673 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1688 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1688 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddMonoid.toZero.{u3} T _inst_10) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prodₓ'. -/
 theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (l : List (AddMonoidAlgebra R A)) :
@@ -147,7 +147,7 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (SMul.smul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb)))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1830 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1830) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1845 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1845)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1867 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1867)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1882 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1882)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (HSMul.hSMul.{0, u3, u3} Nat B B (instHSMul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7)) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1826 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1826 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1841 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1841 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1863 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1863 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1878 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1878 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (HSMul.hSMul.{0, u3, u3} Nat B B (instHSMul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7)) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_leₓ'. -/
 theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b)
     (n : ℕ) (f : AddMonoidAlgebra R A) : (f ^ n).support.sup degb ≤ n • f.support.sup degb :=
@@ -161,7 +161,7 @@ theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (SMul.smul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2200 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2200) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2215 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2215)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2237 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2237)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2252 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2252)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HSMul.hSMul.{0, u3, u3} Nat T T (instHSMul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10)) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2196 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2196 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2211 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2211 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2233 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2233 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2248 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2248 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HSMul.hSMul.{0, u3, u3} Nat T T (instHSMul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10)) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_pow AddMonoidAlgebra.le_inf_support_powₓ'. -/
 theorem le_inf_support_pow (degt0 : 0 ≤ degt 0) (degtm : ∀ a b, degt a + degt b ≤ degt (a + b))
     (n : ℕ) (f : AddMonoidAlgebra R A) : n • f.support.inf degt ≤ (f ^ n).support.inf degt :=
@@ -185,7 +185,7 @@ variable [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [CovariantClass B
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degb) m)))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2573 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2573) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2588 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2588)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2610 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2610)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2625 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2625)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degb) m)))
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2569 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2569 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2584 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2584 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2606 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2606 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2621 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2621 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degb) m)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_leₓ'. -/
 theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset (AddMonoidAlgebra R A)) :
@@ -200,7 +200,7 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2919 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2919) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2934 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2934)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2956 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2956)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2971 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2971)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2915 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2915 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2930 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2930 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2952 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2952 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2967 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2967 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prodₓ'. -/
 theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (m : Multiset (AddMonoidAlgebra R A)) :
@@ -214,7 +214,7 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {ι : Type.{u4}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u3, u4} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degb)))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {ι : Type.{u2}} [_inst_1 : SemilatticeSup.{u4} B] [_inst_2 : OrderBot.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_7 : AddCommMonoid.{u4} B] [_inst_8 : CovariantClass.{u4, u4} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3103 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3103) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3118 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3118)] [_inst_9 : CovariantClass.{u4, u4} B B (Function.swap.{succ u4, succ u4, succ u4} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3140 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3140)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3155 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3155)] {degb : A -> B}, (LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6))))) (OfNat.ofNat.{u4} B 0 (Zero.toOfNat0.{u4} B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b)) (HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u4, u2} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degb)))
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {ι : Type.{u2}} [_inst_1 : SemilatticeSup.{u4} B] [_inst_2 : OrderBot.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_7 : AddCommMonoid.{u4} B] [_inst_8 : CovariantClass.{u4, u4} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3099 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3099 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3114 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3114 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116)] [_inst_9 : CovariantClass.{u4, u4} B B (Function.swap.{succ u4, succ u4, succ u4} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3136 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3136 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3151 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3151 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153)] {degb : A -> B}, (LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6))))) (OfNat.ofNat.{u4} B 0 (Zero.toOfNat0.{u4} B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b)) (HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u4, u2} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degb)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_leₓ'. -/
 theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
@@ -226,7 +226,7 @@ theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} {ι : Type.{u4}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Finset.sum.{u3, u4} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {T : Type.{u4}} {ι : Type.{u2}} [_inst_3 : SemilatticeInf.{u4} T] [_inst_4 : OrderTop.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_10 : AddCommMonoid.{u4} T] [_inst_11 : CovariantClass.{u4, u4} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3438 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3438) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3453 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3453)] [_inst_12 : CovariantClass.{u4, u4} T T (Function.swap.{succ u4, succ u4, succ u4} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3475 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3475)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3490 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3490)] {degt : A -> T}, (LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (OfNat.ofNat.{u4} T 0 (Zero.toOfNat0.{u4} T (AddMonoid.toZero.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (Finset.sum.{u4, u2} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degt)) (Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
+  forall {R : Type.{u1}} {A : Type.{u3}} {T : Type.{u4}} {ι : Type.{u2}} [_inst_3 : SemilatticeInf.{u4} T] [_inst_4 : OrderTop.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_10 : AddCommMonoid.{u4} T] [_inst_11 : CovariantClass.{u4, u4} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3434 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3434 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3449 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3449 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451)] [_inst_12 : CovariantClass.{u4, u4} T T (Function.swap.{succ u4, succ u4, succ u4} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3471 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3471 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3486 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3486 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488)] {degt : A -> T}, (LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (OfNat.ofNat.{u4} T 0 (Zero.toOfNat0.{u4} T (AddMonoid.toZero.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (Finset.sum.{u4, u2} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degt)) (Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prodₓ'. -/
 theorem le_inf_support_finset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.degree
-! leanprover-community/mathlib commit f694c7dead66f5d4c80f446c796a5aad14707f0e
+! leanprover-community/mathlib commit 932872382355f00112641d305ba0619305dc8642
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Algebra.MonoidAlgebra.Support
 /-!
 # Lemmas about the `sup` and `inf` of the support of `add_monoid_algebra`
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 ## TODO
 The current plan is to state and prove lemmas about `finset.sup (finsupp.support f) D` with a
 "generic" degree/weight function `D` from the grading Type `A` to a somewhat ordered Type `B`.
Diff
@@ -49,10 +49,22 @@ a type with *b*ot or *t*op respectively.
 
 variable (degb : A → B) (degt : A → T) (f g : AddMonoidAlgebra R A)
 
+/- warning: add_monoid_algebra.sup_support_add_le -> AddMonoidAlgebra.sup_support_add_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toHasSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degb))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] (degb : A -> B) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u1, u2} R A _inst_5))))) f g)) degb) (Sup.sup.{u3} B (SemilatticeSup.toSup.{u3} B _inst_1) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degb))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_add_le AddMonoidAlgebra.sup_support_add_leₓ'. -/
 theorem sup_support_add_le : (f + g).support.sup degb ≤ f.support.sup degb ⊔ g.support.sup degb :=
   (Finset.sup_mono Finsupp.support_add).trans_eq Finset.sup_union
 #align add_monoid_algebra.sup_support_add_le AddMonoidAlgebra.sup_support_add_le
 
+/- warning: add_monoid_algebra.le_inf_support_add -> AddMonoidAlgebra.le_inf_support_add is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toHasInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R A _inst_5))))) f g)) degt)
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] (degt : A -> T) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) (g : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Inf.inf.{u3} T (SemilatticeInf.toInf.{u3} T _inst_3) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) g) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.addCommMonoid.{u1, u2} R A _inst_5))))) f g)) degt)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_add AddMonoidAlgebra.le_inf_support_addₓ'. -/
 theorem le_inf_support_add : f.support.inf degt ⊓ g.support.inf degt ≤ (f + g).support.inf degt :=
   sup_support_add_le (fun a : A => OrderDual.toDual (degt a)) f g
 #align add_monoid_algebra.le_inf_support_add AddMonoidAlgebra.le_inf_support_add
@@ -65,6 +77,7 @@ variable [Add A] [Add B] [Add T] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)] [CovariantClass T T (· + ·) (· ≤ ·)]
   [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
 
+#print AddMonoidAlgebra.sup_support_mul_le /-
 theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤ degb a + degb b)
     (f g : AddMonoidAlgebra R A) :
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb :=
@@ -74,13 +87,16 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
   refine' Finset.sup_le fun fd fds => Finset.sup_le fun gd gds => degbm.trans <| add_le_add _ _ <;>
     exact Finset.le_sup ‹_›
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
+-/
 
+#print AddMonoidAlgebra.le_inf_support_mul /-
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
     (f g : AddMonoidAlgebra R A) :
     f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt :=
   OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_mul_le (fun a b => OrderDual.ofDual_le_ofDual.mp degtm) f g
 #align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mul
+-/
 
 end AddOnly
 
@@ -91,6 +107,12 @@ variable [AddMonoid A] [AddMonoid B] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   {degb : A → B} {degt : A → T}
 
+/- warning: add_monoid_algebra.sup_support_list_prod_le -> AddMonoidAlgebra.sup_support_list_prod_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degb) (List.sum.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb) l)))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1159 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1157 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1159) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1174 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1172 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1174)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1196 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1194 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1196)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1211 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1209 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1211)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degb) (List.sum.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)) (AddMonoid.toZero.{u3} B _inst_7) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) B (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb) l)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_leₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) :
@@ -104,6 +126,12 @@ theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     exact (sup_support_mul_le degbm _ _).trans (add_le_add_left (sup_support_list_prod_le _) _)
 #align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_le
 
+/- warning: add_monoid_algebra.le_inf_support_list_prod -> AddMonoidAlgebra.le_inf_support_list_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (List.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (List.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) l)) degt))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1640 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1638 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1640) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1655 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1653 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1655)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1677 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1675 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1677)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1692 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1690 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1692)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (l : List.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5)), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (List.sum.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)) (AddMonoid.toZero.{u3} T _inst_10) (List.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A _inst_5) T (fun (f : AddMonoidAlgebra.{u1, u2} R A _inst_5) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt) l)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (List.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.hasMul.{u1, u2} R A _inst_5 (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) (AddMonoidAlgebra.one.{u1, u2} R A _inst_5 (AddMonoid.toZero.{u2} A _inst_6)) l)) degt))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prodₓ'. -/
 theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (l : List (AddMonoidAlgebra R A)) :
     (l.map fun f : AddMonoidAlgebra R A => f.support.inf degt).Sum ≤ l.Prod.support.inf degt :=
@@ -112,6 +140,12 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) l
 #align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prod
 
+/- warning: add_monoid_algebra.sup_support_pow_le -> AddMonoidAlgebra.sup_support_pow_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7)))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (SMul.smul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degb)))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_7 : AddMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1830 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1828 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1830) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1845 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1843 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1845)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1867 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1865 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1867)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1882 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1880 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.1882)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6)))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B _inst_7)))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_7))) (degb a) (degb b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degb) (HSMul.hSMul.{0, u3, u3} Nat B B (instHSMul.{0, u3} Nat B (AddMonoid.SMul.{u3} B _inst_7)) n (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degb)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_leₓ'. -/
 theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b)
     (n : ℕ) (f : AddMonoidAlgebra R A) : (f ^ n).support.sup degb ≤ n • f.support.sup degb :=
   by
@@ -120,6 +154,12 @@ theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b)
   rw [List.map_replicate]
 #align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_le
 
+/- warning: add_monoid_algebra.le_inf_support_pow -> AddMonoidAlgebra.le_inf_support_pow is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10)))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (SMul.smul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : Semiring.{u1} R] [_inst_6 : AddMonoid.{u2} A] [_inst_10 : AddMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2200 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2198 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2200) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2215 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2213 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2215)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2237 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2235 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2237)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2252 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2250 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2252)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T _inst_10))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_6))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T _inst_10))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_6))) a b))) -> (forall (n : Nat) (f : AddMonoidAlgebra.{u1, u2} R A _inst_5), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HSMul.hSMul.{0, u3, u3} Nat T T (instHSMul.{0, u3} Nat T (AddMonoid.SMul.{u3} T _inst_10)) n (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) f) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_5)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (AddMonoidAlgebra.{u1, u2} R A _inst_5) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R A _inst_5) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A _inst_5) (AddMonoidAlgebra.semiring.{u1, u2} R A _inst_5 _inst_6))))) f n)) degt))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_pow AddMonoidAlgebra.le_inf_support_powₓ'. -/
 theorem le_inf_support_pow (degt0 : 0 ≤ degt 0) (degtm : ∀ a b, degt a + degt b ≤ degt (a + b))
     (n : ℕ) (f : AddMonoidAlgebra R A) : n • f.support.inf degt ≤ (f ^ n).support.inf degt :=
   OrderDual.ofDual_le_ofDual.mpr <|
@@ -138,6 +178,12 @@ variable [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [CovariantClass B
   [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   {degb : A → B} {degt : A → T}
 
+/- warning: add_monoid_algebra.sup_support_multiset_prod_le -> AddMonoidAlgebra.sup_support_multiset_prod_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degb) m)))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2573 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2571 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2573) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2588 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2586 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2588)] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2610 : B) => HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2608 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2610)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2625 : B) => LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2623 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2625)] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))) (OfNat.ofNat.{u3} B 0 (Zero.toOfNat0.{u3} B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degb) (Multiset.sum.{u3} B _inst_7 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) B (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degb) m)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_leₓ'. -/
 theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset (AddMonoidAlgebra R A)) :
     m.Prod.support.sup degb ≤ (m.map fun f : AddMonoidAlgebra R A => f.support.sup degb).Sum :=
@@ -147,6 +193,12 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
   exact sup_support_list_prod_le degb0 degbm m
 #align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_le
 
+/- warning: add_monoid_algebra.le_inf_support_multiset_prod -> AddMonoidAlgebra.le_inf_support_multiset_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Multiset.prod.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2919 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2917 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2919) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2934 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2932 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2934)] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2956 : T) => HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2954 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2956)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2971 : T) => LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2969 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.2971)] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (Zero.toOfNat0.{u3} T (AddMonoid.toZero.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (m : Multiset.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Multiset.sum.{u3} T _inst_10 (Multiset.map.{max u1 u2, u3} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) T (fun (f : AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) f) degt) m)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Multiset.prod.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) m)) degt))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prodₓ'. -/
 theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (m : Multiset (AddMonoidAlgebra R A)) :
     (m.map fun f : AddMonoidAlgebra R A => f.support.inf degt).Sum ≤ m.Prod.support.inf degt :=
@@ -155,12 +207,24 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (degtm _ _)) m
 #align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prod
 
+/- warning: add_monoid_algebra.sup_support_finset_prod_le -> AddMonoidAlgebra.sup_support_finset_prod_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {ι : Type.{u4}} [_inst_1 : SemilatticeSup.{u3} B] [_inst_2 : OrderBot.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_7 : AddCommMonoid.{u3} B] [_inst_8 : CovariantClass.{u3, u3} B B (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] [_inst_9 : CovariantClass.{u3, u3} B B (Function.swap.{succ u3, succ u3, succ u3} B B (fun (ᾰ : B) (ᾰ : B) => B) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))))) (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))))] {degb : A -> B}, (LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6))))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7))))))) -> (forall (a : A) (b : A), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (degb (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} B (Preorder.toLE.{u3} B (PartialOrder.toPreorder.{u3} B (SemilatticeSup.toPartialOrder.{u3} B _inst_1))) (Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u3, u4} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u3, u2} B A _inst_1 _inst_2 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degb)))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {ι : Type.{u2}} [_inst_1 : SemilatticeSup.{u4} B] [_inst_2 : OrderBot.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_7 : AddCommMonoid.{u4} B] [_inst_8 : CovariantClass.{u4, u4} B B (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3103 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3101 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3103) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3118 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3116 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3118)] [_inst_9 : CovariantClass.{u4, u4} B B (Function.swap.{succ u4, succ u4, succ u4} B B (fun (ᾰ : B) (ᾰ : B) => B) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3140 : B) => HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3138 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3140)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 : B) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3155 : B) => LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3153 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3155)] {degb : A -> B}, (LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6))))) (OfNat.ofNat.{u4} B 0 (Zero.toOfNat0.{u4} B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7))))) -> (forall (a : A) (b : A), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (degb (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b)) (HAdd.hAdd.{u4, u4, u4} B B B (instHAdd.{u4} B (AddZeroClass.toAdd.{u4} B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B _inst_7)))) (degb a) (degb b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} B (Preorder.toLE.{u4} B (PartialOrder.toPreorder.{u4} B (SemilatticeSup.toPartialOrder.{u4} B _inst_1))) (Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degb) (Finset.sum.{u4, u2} B ι _inst_7 s (fun (i : ι) => Finset.sup.{u4, u3} B A _inst_1 _inst_2 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degb)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_leₓ'. -/
 theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
     (∏ i in s, f i).support.sup degb ≤ ∑ i in s, (f i).support.sup degb :=
   (sup_support_multiset_prod_le degb0 degbm _).trans_eq <| congr_arg _ <| Multiset.map_map _ _ _
 #align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_le
 
+/- warning: add_monoid_algebra.le_inf_support_finset_prod -> AddMonoidAlgebra.le_inf_support_finset_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {T : Type.{u3}} {ι : Type.{u4}} [_inst_3 : SemilatticeInf.{u3} T] [_inst_4 : OrderTop.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u2} A] [_inst_10 : AddCommMonoid.{u3} T] [_inst_11 : CovariantClass.{u3, u3} T T (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] [_inst_12 : CovariantClass.{u3, u3} T T (Function.swap.{succ u3, succ u3, succ u3} T T (fun (ᾰ : T) (ᾰ : T) => T) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))))] {degt : A -> T}, (LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (OfNat.ofNat.{u3} T 0 (OfNat.mk.{u3} T 0 (Zero.zero.{u3} T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))))) (degt (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))))))) -> (forall (a : A) (b : A), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (HAdd.hAdd.{u3, u3, u3} T T T (instHAdd.{u3} T (AddZeroClass.toHasAdd.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A _inst_6)))) a b))) -> (forall (s : Finset.{u4} ι) (f : ι -> (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u3} T (Preorder.toLE.{u3} T (PartialOrder.toPreorder.{u3} T (SemilatticeInf.toPartialOrder.{u3} T _inst_3))) (Finset.sum.{u3, u4} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (f i)) degt)) (Finset.inf.{u3, u2} T A _inst_3 _inst_4 (Finsupp.support.{u2, u1} A R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))))) (Finset.prod.{max u2 u1, u4} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u2} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {T : Type.{u4}} {ι : Type.{u2}} [_inst_3 : SemilatticeInf.{u4} T] [_inst_4 : OrderTop.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3)))] [_inst_5 : CommSemiring.{u1} R] [_inst_6 : AddCommMonoid.{u3} A] [_inst_10 : AddCommMonoid.{u4} T] [_inst_11 : CovariantClass.{u4, u4} T T (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3438 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3436 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3438) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3453 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3451 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3453)] [_inst_12 : CovariantClass.{u4, u4} T T (Function.swap.{succ u4, succ u4, succ u4} T T (fun (ᾰ : T) (ᾰ : T) => T) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3475 : T) => HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3473 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3475)) (fun (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 : T) (x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3490 : T) => LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3488 x._@.Mathlib.Algebra.MonoidAlgebra.Degree._hyg.3490)] {degt : A -> T}, (LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (OfNat.ofNat.{u4} T 0 (Zero.toOfNat0.{u4} T (AddMonoid.toZero.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))))) -> (forall (a : A) (b : A), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (HAdd.hAdd.{u4, u4, u4} T T T (instHAdd.{u4} T (AddZeroClass.toAdd.{u4} T (AddMonoid.toAddZeroClass.{u4} T (AddCommMonoid.toAddMonoid.{u4} T _inst_10)))) (degt a) (degt b)) (degt (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_6)))) a b))) -> (forall (s : Finset.{u2} ι) (f : ι -> (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5))), LE.le.{u4} T (Preorder.toLE.{u4} T (PartialOrder.toPreorder.{u4} T (SemilatticeInf.toPartialOrder.{u4} T _inst_3))) (Finset.sum.{u4, u2} T ι _inst_10 s (fun (i : ι) => Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (f i)) degt)) (Finset.inf.{u4, u3} T A _inst_3 _inst_4 (Finsupp.support.{u3, u1} A R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_5))) (Finset.prod.{max u1 u3, u2} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) ι (CommSemiring.toCommMonoid.{max u1 u3} (AddMonoidAlgebra.{u1, u3} R A (CommSemiring.toSemiring.{u1} R _inst_5)) (AddMonoidAlgebra.commSemiring.{u1, u3} R A _inst_5 _inst_6)) s (fun (i : ι) => f i))) degt))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prodₓ'. -/
 theorem le_inf_support_finset_prod (degt0 : 0 ≤ degt 0)
     (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
     (∑ i in s, (f i).support.inf degt) ≤ (∏ i in s, f i).support.inf degt :=

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 3 (#12372)

A PR analogous to #12338 and #12361: reformatting proofs following the multiple goals linter of #12339.

Diff
@@ -187,8 +187,8 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
   refine' OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_multiset_prod_le (OrderDual.ofDual_le_ofDual.mp _)
       (fun a b => OrderDual.ofDual_le_ofDual.mp _) m
-  exact degt0
-  exact degtm _ _
+  · exact degt0
+  · exact degtm _ _
 #align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prod
 
 theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -22,7 +22,8 @@ variable {R R' A T B ι : Type*}
 
 namespace AddMonoidAlgebra
 
-open Classical BigOperators
+open scoped Classical
+open BigOperators
 
 /-!
 
feat: generalize a few assumptions around AddMonoidAlgebra degrees (#11168)
Diff
@@ -218,10 +218,9 @@ variable [Semiring R] [Ring R']
 
 section SupDegree
 
-variable [AddZeroClass A] [SemilatticeSup B] [AddZeroClass B] [OrderBot B]
-  (D : A → B)
+variable [AddZeroClass A] [SemilatticeSup B] [Add B] [OrderBot B] (D : A → B)
 
-/-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `B` be an `OrderBot`,
+/-- Let `R` be a semiring, let `A` be an `AddZeroClass`, let `B` be an `OrderBot`,
 and let `D : A → B` be a "degree" function.
 For an element `f : R[A]`, the element `supDegree f : B` is the supremum of all the elements in the
 support of `f`, or `⊥` if `f` is zero.
@@ -322,9 +321,9 @@ end SupDegree
 
 section InfDegree
 
-variable [AddZeroClass A] [SemilatticeInf T] [AddZeroClass T] [OrderTop T] (D : A → T)
+variable [AddZeroClass A] [SemilatticeInf T] [Add T] [OrderTop T] (D : A → T)
 
-/-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `T` be an `OrderTop`,
+/-- Let `R` be a semiring, let `A` be an `AddZeroClass`, let `T` be an `OrderTop`,
 and let `D : A → T` be a "degree" function.
 For an element `f : R[A]`, the element `infDegree f : T` is the infimum of all the elements in the
 support of `f`, or `⊤` if `f` is zero.
@@ -340,11 +339,10 @@ theorem le_infDegree_add (f g : R[A]) :
   le_inf_support_add D f g
 
 variable [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
-  (D : A →+ T) in
+  (D : AddHom A T) in
 theorem le_infDegree_mul (f g : R[A]) :
     f.infDegree D + g.infDegree D ≤ (f * g).infDegree D :=
-  --  Porting note: added `a b` in `AddMonoidHom.map_add D a b`, was `AddMonoidHom.map_add D _ _`
-  le_inf_support_mul (fun {a b : A} => (AddMonoidHom.map_add D a b).ge) _ _
+  le_inf_support_mul (fun {a b : A} => (map_add D a b).ge) _ _
 
 variable {D}
 
chore: Rename lemmas about the coercion List → Multiset (#11099)

These did not respect the naming convention by having the coe as a prefix instead of a suffix, or vice-versa. Also add a bunch of norm_cast

Diff
@@ -176,7 +176,7 @@ theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset R[A]) :
     m.prod.support.sup degb ≤ (m.map fun f : R[A] => f.support.sup degb).sum := by
   induction m using Quot.inductionOn
-  rw [Multiset.quot_mk_to_coe'', Multiset.coe_map, Multiset.coe_sum, Multiset.coe_prod]
+  rw [Multiset.quot_mk_to_coe'', Multiset.map_coe, Multiset.sum_coe, Multiset.prod_coe]
   exact sup_support_list_prod_le degb0 degbm _
 #align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_le
 
feat: connect AddMonoidAlgebra.supDegree and Polynomial.natDegree/degree (#10518)
Diff
@@ -295,29 +295,34 @@ theorem supDegree_prod_le {R A B : Type*} [CommSemiring R] [AddCommMonoid A] [Ad
 
 variable [CovariantClass B B (· + ·) (· < ·)] [CovariantClass B B (Function.swap (· + ·)) (· < ·)]
 
-theorem apply_add_of_supDegree_eq (hD : D.Injective) {ap aq : A}
-    (hp : p.supDegree D = D ap) (hq : q.supDegree D = D aq) :
+theorem apply_add_of_supDegree_le (hD : D.Injective) {ap aq : A}
+    (hp : p.supDegree D ≤ D ap) (hq : q.supDegree D ≤ D aq) :
     (p * q) (ap + aq) = p ap * q aq := by
   simp_rw [mul_apply, Finsupp.sum]
   rw [Finset.sum_eq_single ap, Finset.sum_eq_single aq, if_pos rfl]
   · refine fun a ha hne => if_neg (fun he => ?_)
     apply_fun D at he; simp_rw [hadd] at he
-    exact (add_lt_add_left (((Finset.le_sup ha).trans_eq hq).lt_of_ne <| hD.ne_iff.2 hne) _).ne he
+    exact (add_lt_add_left (((Finset.le_sup ha).trans hq).lt_of_ne <| hD.ne_iff.2 hne) _).ne he
   · intro h; rw [if_pos rfl, Finsupp.not_mem_support_iff.1 h, mul_zero]
   · refine fun a ha hne => Finset.sum_eq_zero (fun a' ha' => if_neg <| fun he => ?_)
     apply_fun D at he
     simp_rw [hadd] at he
     have := covariantClass_le_of_lt B B (· + ·)
-    exact (add_lt_add_of_lt_of_le (((Finset.le_sup ha).trans_eq hp).lt_of_ne <| hD.ne_iff.2 hne)
-      <| (Finset.le_sup ha').trans_eq hq).ne he
+    exact (add_lt_add_of_lt_of_le (((Finset.le_sup ha).trans hp).lt_of_ne <| hD.ne_iff.2 hne)
+      <| (Finset.le_sup ha').trans hq).ne he
   · refine fun h => Finset.sum_eq_zero (fun a _ => ite_eq_right_iff.mpr <| fun _ => ?_)
     rw [Finsupp.not_mem_support_iff.mp h, zero_mul]
 
+theorem supDegree_withBot_some_comp {s : AddMonoidAlgebra R A} (hs : s.support.Nonempty) :
+    supDegree (WithBot.some ∘ D) s = supDegree D s := by
+  unfold AddMonoidAlgebra.supDegree
+  rw [← Finset.coe_sup' hs, Finset.sup'_eq_sup]
+
 end SupDegree
 
 section InfDegree
 
-variable [AddZeroClass A] [SemilatticeInf T] [AddZeroClass T] [OrderTop T]
+variable [AddZeroClass A] [SemilatticeInf T] [AddZeroClass T] [OrderTop T] (D : A → T)
 
 /-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `T` be an `OrderTop`,
 and let `D : A → T` be a "degree" function.
@@ -327,10 +332,10 @@ Often, the Type `T` is `WithTop A`,
 If, further, `A` has a linear order, then this notion coincides with the usual one,
 using the minimum of the exponents. -/
 @[reducible]
-def infDegree (D : A → T) (f : R[A]) : T :=
+def infDegree (f : R[A]) : T :=
   f.support.inf D
 
-theorem le_infDegree_add (D : A → T) (f g : R[A]) :
+theorem le_infDegree_add (f g : R[A]) :
     (f.infDegree D) ⊓ (g.infDegree D) ≤ (f + g).infDegree D :=
   le_inf_support_add D f g
 
@@ -341,6 +346,13 @@ theorem le_infDegree_mul (f g : R[A]) :
   --  Porting note: added `a b` in `AddMonoidHom.map_add D a b`, was `AddMonoidHom.map_add D _ _`
   le_inf_support_mul (fun {a b : A} => (AddMonoidHom.map_add D a b).ge) _ _
 
+variable {D}
+
+theorem infDegree_withTop_some_comp {s : AddMonoidAlgebra R A} (hs : s.support.Nonempty) :
+    infDegree (WithTop.some ∘ D) s = infDegree D s := by
+  unfold AddMonoidAlgebra.infDegree
+  rw [← Finset.coe_inf' hs, Finset.inf'_eq_inf]
+
 end InfDegree
 
 end Degrees
feat: extend AddMonoidAlgebra.supDegree API (#10355)

This is a part of #7173 that I hope will be uncontroversial.

Diff
@@ -18,7 +18,7 @@ Next, the general lemmas get specialized for some yet-to-be-defined `degree`s.
 -/
 
 
-variable {R A T B ι : Type*}
+variable {R R' A T B ι : Type*}
 
 namespace AddMonoidAlgebra
 
@@ -214,7 +214,7 @@ lemmas above. -/
 
 section Degrees
 
-variable [Semiring R]
+variable [Semiring R] [Ring R']
 
 section SupDegree
 
@@ -232,15 +232,86 @@ using the maximum of the exponents. -/
 def supDegree (f : R[A]) : B :=
   f.support.sup D
 
-theorem supDegree_add_le (f g : R[A]) :
+variable {D}
+
+theorem supDegree_add_le {f g : R[A]} :
     (f + g).supDegree D ≤ (f.supDegree D) ⊔ (g.supDegree D) :=
   sup_support_add_le D f g
 
-variable [CovariantClass B B (· + ·) (· ≤ ·)] [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)]
-  (D : A →+ B) in
-theorem supDegree_mul_le (f g : R[A]) :
-    (f * g).supDegree D ≤ f.supDegree D + g.supDegree D :=
-  sup_support_mul_le (fun {_ _} => (AddMonoidHom.map_add D _ _).le) f g
+@[simp]
+theorem supDegree_neg {f : R'[A]} :
+    (-f).supDegree D = f.supDegree D := by
+  rw [supDegree, supDegree, Finsupp.support_neg]
+
+theorem supDegree_sub_le {f g : R'[A]} :
+    (f - g).supDegree D ≤ f.supDegree D ⊔ g.supDegree D := by
+  rw [sub_eq_add_neg, ← supDegree_neg (f := g)]; apply supDegree_add_le
+
+theorem supDegree_sum_le {ι} {s : Finset ι} {f : ι → R[A]} :
+    (∑ i in s, f i).supDegree D ≤ s.sup (fun i => (f i).supDegree D) :=
+  (Finset.sup_mono Finsupp.support_finset_sum).trans_eq (Finset.sup_biUnion _ _)
+
+theorem supDegree_single_ne_zero (a : A) {r : R} (hr : r ≠ 0) :
+    (single a r).supDegree D = D a := by
+  rw [supDegree, Finsupp.support_single_ne_zero a hr, Finset.sup_singleton]
+
+theorem supDegree_single (a : A) (r : R) :
+    (single a r).supDegree D = if r = 0 then ⊥ else D a := by
+  split_ifs with hr <;> simp [supDegree_single_ne_zero, hr]
+
+variable {p q : R[A]}
+
+@[simp]
+theorem supDegree_zero : (0 : R[A]).supDegree D = ⊥ := by simp [supDegree]
+
+theorem ne_zero_of_supDegree_ne_bot : p.supDegree D ≠ ⊥ → p ≠ 0 := mt (fun h => h ▸ supDegree_zero)
+
+theorem ne_zero_of_not_supDegree_le {b : B} (h : ¬ p.supDegree D ≤ b) : p ≠ 0 :=
+  ne_zero_of_supDegree_ne_bot (fun he => h <| he ▸ bot_le)
+
+theorem apply_eq_zero_of_not_le_supDegree {a : A} (hlt : ¬ D a ≤ p.supDegree D) : p a = 0 := by
+  contrapose! hlt
+  exact Finset.le_sup (Finsupp.mem_support_iff.2 hlt)
+
+variable (hadd : ∀ a1 a2, D (a1 + a2) = D a1 + D a2)
+
+theorem supDegree_mul_le [CovariantClass B B (· + ·) (· ≤ ·)]
+    [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)] :
+    (p * q).supDegree D ≤ p.supDegree D + q.supDegree D :=
+  sup_support_mul_le (fun {_ _} => (hadd _ _).le) p q
+
+theorem supDegree_prod_le {R A B : Type*} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B]
+    [SemilatticeSup B] [OrderBot B]
+    [CovariantClass B B (· + ·) (· ≤ ·)] [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)]
+    {D : A → B} (hzero : D 0 = 0) (hadd : ∀ a1 a2, D (a1 + a2) = D a1 + D a2)
+    {ι} {s : Finset ι} {f : ι → R[A]} :
+    (∏ i in s, f i).supDegree D ≤ ∑ i in s, (f i).supDegree D := by
+  refine' s.induction _ _
+  · rw [Finset.prod_empty, Finset.sum_empty, one_def, supDegree_single]
+    split_ifs; exacts [bot_le, hzero.le]
+  · intro i s his ih
+    rw [Finset.prod_insert his, Finset.sum_insert his]
+    exact (supDegree_mul_le hadd).trans (add_le_add_left ih _)
+
+variable [CovariantClass B B (· + ·) (· < ·)] [CovariantClass B B (Function.swap (· + ·)) (· < ·)]
+
+theorem apply_add_of_supDegree_eq (hD : D.Injective) {ap aq : A}
+    (hp : p.supDegree D = D ap) (hq : q.supDegree D = D aq) :
+    (p * q) (ap + aq) = p ap * q aq := by
+  simp_rw [mul_apply, Finsupp.sum]
+  rw [Finset.sum_eq_single ap, Finset.sum_eq_single aq, if_pos rfl]
+  · refine fun a ha hne => if_neg (fun he => ?_)
+    apply_fun D at he; simp_rw [hadd] at he
+    exact (add_lt_add_left (((Finset.le_sup ha).trans_eq hq).lt_of_ne <| hD.ne_iff.2 hne) _).ne he
+  · intro h; rw [if_pos rfl, Finsupp.not_mem_support_iff.1 h, mul_zero]
+  · refine fun a ha hne => Finset.sum_eq_zero (fun a' ha' => if_neg <| fun he => ?_)
+    apply_fun D at he
+    simp_rw [hadd] at he
+    have := covariantClass_le_of_lt B B (· + ·)
+    exact (add_lt_add_of_lt_of_le (((Finset.le_sup ha).trans_eq hp).lt_of_ne <| hD.ne_iff.2 hne)
+      <| (Finset.le_sup ha').trans_eq hq).ne he
+  · refine fun h => Finset.sum_eq_zero (fun a _ => ite_eq_right_iff.mpr <| fun _ => ?_)
+    rw [Finsupp.not_mem_support_iff.mp h, zero_mul]
 
 end SupDegree
 
refactor(MonoidAlgebra/Support): reformulate support_mul (#8953)

Use pointwise multiplication/addition of Finsets in MonoidAlgebra.support_mul and AddMonoidAlgebra.support_mul.

Diff
@@ -102,19 +102,15 @@ variable [Add A] [Add B] [Add T] [CovariantClass B B (· + ·) (· ≤ ·)]
 
 theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤ degb a + degb b)
     (f g : R[A]) :
-    (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb := by
-  refine' (Finset.sup_mono <| support_mul _ _).trans _
-  simp_rw [Finset.sup_biUnion, Finset.sup_singleton]
-  refine' Finset.sup_le fun fd fds => Finset.sup_le fun gd gds => degbm.trans <| add_le_add _ _ <;>
-    exact Finset.le_sup ‹_›
+    (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb :=
+  (Finset.sup_mono <| support_mul _ _).trans <| Finset.sup_add_le.2 fun _fd fds _gd gds ↦
+    degbm.trans <| add_le_add (Finset.le_sup fds) (Finset.le_sup gds)
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
 
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
     (f g : R[A]) :
-    f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt := by
-    refine' OrderDual.ofDual_le_ofDual.mpr <| sup_support_mul_le _ f g
-    intros a b
-    exact OrderDual.ofDual_le_ofDual.mp degtm
+    f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt :=
+  sup_support_mul_le (B := Tᵒᵈ) degtm f g
 #align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mul
 
 end AddOnly
chore: tidy various files (#8880)
Diff
@@ -112,7 +112,7 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
     (f g : R[A]) :
     f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt := by
-    refine' OrderDual.ofDual_le_ofDual.mpr <| sup_support_mul_le (_) f g
+    refine' OrderDual.ofDual_le_ofDual.mpr <| sup_support_mul_le _ f g
     intros a b
     exact OrderDual.ofDual_le_ofDual.mp degtm
 #align add_monoid_algebra.le_inf_support_mul AddMonoidAlgebra.le_inf_support_mul
@@ -161,8 +161,8 @@ theorem le_inf_support_pow (degt0 : 0 ≤ degt 0) (degtm : ∀ a b, degt a + deg
     (n : ℕ) (f : R[A]) : n • f.support.inf degt ≤ (f ^ n).support.inf degt := by
   refine' OrderDual.ofDual_le_ofDual.mpr <| sup_support_pow_le (OrderDual.ofDual_le_ofDual.mp _)
       (fun a b => OrderDual.ofDual_le_ofDual.mp _) n f
-  exact degt0
-  exact degtm _ _
+  · exact degt0
+  · exact degtm _ _
 #align add_monoid_algebra.le_inf_support_pow AddMonoidAlgebra.le_inf_support_pow
 
 end AddMonoids
@@ -189,7 +189,7 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
     (m.map fun f : R[A] => f.support.inf degt).sum ≤ m.prod.support.inf degt := by
   refine' OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_multiset_prod_le (OrderDual.ofDual_le_ofDual.mp _)
-      (fun a b => OrderDual.ofDual_le_ofDual.mp (_)) m
+      (fun a b => OrderDual.ofDual_le_ofDual.mp _) m
   exact degt0
   exact degtm _ _
 #align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prod
chore: tidy various files (#7359)
Diff
@@ -227,8 +227,8 @@ variable [AddZeroClass A] [SemilatticeSup B] [AddZeroClass B] [OrderBot B]
 
 /-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `B` be an `OrderBot`,
 and let `D : A → B` be a "degree" function.
-For an element `f : R[A]`, the `R[A]`, the element `supDegree f : B` is the
-supremum of all the elements in the support of `f`, or `⊥` if `f` is zero.
+For an element `f : R[A]`, the element `supDegree f : B` is the supremum of all the elements in the
+support of `f`, or `⊥` if `f` is zero.
 Often, the Type `B` is `WithBot A`,
 If, further, `A` has a linear order, then this notion coincides with the usual one,
 using the maximum of the exponents. -/
@@ -254,8 +254,8 @@ variable [AddZeroClass A] [SemilatticeInf T] [AddZeroClass T] [OrderTop T]
 
 /-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `T` be an `OrderTop`,
 and let `D : A → T` be a "degree" function.
-For an element `f : R[A]`, the `R[A]`, the element `infDegree f : T` is the
-infimum of all the elements in the support of `f`, or `⊤` if `f` is zero.
+For an element `f : R[A]`, the element `infDegree f : T` is the infimum of all the elements in the
+support of `f`, or `⊤` if `f` is zero.
 Often, the Type `T` is `WithTop A`,
 If, further, `A` has a linear order, then this notion coincides with the usual one,
 using the minimum of the exponents. -/
feat(AddMonoidAlgebra*): add notation R[A] for addMonoidAlgebra R A (#7203)

Introduce the notation R[A] for AddMonoidAlgebra R A. This is to align Mathlibs notation with the standard notation for group ring.

The notation is scoped in AddMonoidAlgebra and there is no analogous notation for MonoidAlgebra.

I only used the notation for single-character R and As and only in the range [a-zA-Z].

The extra lines are all in Mathlib/Algebra/MonoidAlgebra/Basic.lean. They are accounted for by extra text in the doc-module and the actual notation.

Affected files:

Counterexamples/ZeroDivisorsInAddMonoidAlgebras
Algebra/AlgebraicCard
Algebra/MonoidAlgebra/Basic
Algebra/MonoidAlgebra/Degree
Algebra/MonoidAlgebra/Division
Algebra/MonoidAlgebra/Grading
Algebra/MonoidAlgebra/NoZeroDivisors
Algebra/MonoidAlgebra/Support
Data/Polynomial/AlgebraMap
Data/Polynomial/Basic
Data/Polynomial/Eval
Data/Polynomial/Laurent
RingTheory/FiniteType
Diff
@@ -29,7 +29,7 @@ open Classical BigOperators
 # sup-degree and inf-degree of an `AddMonoidAlgebra`
 
 Let `R` be a semiring and let `A` be a `SemilatticeSup`.
-For an element `f : AddMonoidAlgebra R A`, this file defines
+For an element `f : R[A]`, this file defines
 * `AddMonoidAlgebra.supDegree`: the sup-degree taking values in `WithBot A`,
 * `AddMonoidAlgebra.infDegree`: the inf-degree taking values in `WithTop A`.
 
@@ -82,7 +82,7 @@ a type with *b*ot or *t*op respectively.
 -/
 
 
-variable (degb : A → B) (degt : A → T) (f g : AddMonoidAlgebra R A)
+variable (degb : A → B) (degt : A → T) (f g : R[A])
 
 theorem sup_support_add_le : (f + g).support.sup degb ≤ f.support.sup degb ⊔ g.support.sup degb :=
   (Finset.sup_mono Finsupp.support_add).trans_eq Finset.sup_union
@@ -101,7 +101,7 @@ variable [Add A] [Add B] [Add T] [CovariantClass B B (· + ·) (· ≤ ·)]
   [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
 
 theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤ degb a + degb b)
-    (f g : AddMonoidAlgebra R A) :
+    (f g : R[A]) :
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb := by
   refine' (Finset.sup_mono <| support_mul _ _).trans _
   simp_rw [Finset.sup_biUnion, Finset.sup_singleton]
@@ -110,7 +110,7 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
 
 theorem le_inf_support_mul {degt : A → T} (degtm : ∀ {a b}, degt a + degt b ≤ degt (a + b))
-    (f g : AddMonoidAlgebra R A) :
+    (f g : R[A]) :
     f.support.inf degt + g.support.inf degt ≤ (f * g).support.inf degt := by
     refine' OrderDual.ofDual_le_ofDual.mpr <| sup_support_mul_le (_) f g
     intros a b
@@ -128,8 +128,8 @@ variable [AddMonoid A] [AddMonoid B] [CovariantClass B B (· + ·) (· ≤ ·)]
 
 theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
     (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) :
-    ∀ l : List (AddMonoidAlgebra R A),
-      l.prod.support.sup degb ≤ (l.map fun f : AddMonoidAlgebra R A => f.support.sup degb).sum
+    ∀ l : List R[A],
+      l.prod.support.sup degb ≤ (l.map fun f : R[A] => f.support.sup degb).sum
   | [] => by
     rw [List.map_nil, Finset.sup_le_iff, List.prod_nil, List.sum_nil]
     exact fun a ha => by rwa [Finset.mem_singleton.mp (Finsupp.support_single_subset ha)]
@@ -140,8 +140,8 @@ theorem sup_support_list_prod_le (degb0 : degb 0 ≤ 0)
 #align add_monoid_algebra.sup_support_list_prod_le AddMonoidAlgebra.sup_support_list_prod_le
 
 theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
-    (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (l : List (AddMonoidAlgebra R A)) :
-    (l.map fun f : AddMonoidAlgebra R A => f.support.inf degt).sum ≤ l.prod.support.inf degt := by
+    (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (l : List R[A]) :
+    (l.map fun f : R[A] => f.support.inf degt).sum ≤ l.prod.support.inf degt := by
   refine' OrderDual.ofDual_le_ofDual.mpr _
   refine' sup_support_list_prod_le _ _ l
   · refine' (OrderDual.ofDual_le_ofDual.mp _)
@@ -151,14 +151,14 @@ theorem le_inf_support_list_prod (degt0 : 0 ≤ degt 0)
 #align add_monoid_algebra.le_inf_support_list_prod AddMonoidAlgebra.le_inf_support_list_prod
 
 theorem sup_support_pow_le (degb0 : degb 0 ≤ 0) (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b)
-    (n : ℕ) (f : AddMonoidAlgebra R A) : (f ^ n).support.sup degb ≤ n • f.support.sup degb := by
+    (n : ℕ) (f : R[A]) : (f ^ n).support.sup degb ≤ n • f.support.sup degb := by
   rw [← List.prod_replicate, ← List.sum_replicate]
   refine' (sup_support_list_prod_le degb0 degbm _).trans_eq _
   rw [List.map_replicate]
 #align add_monoid_algebra.sup_support_pow_le AddMonoidAlgebra.sup_support_pow_le
 
 theorem le_inf_support_pow (degt0 : 0 ≤ degt 0) (degtm : ∀ a b, degt a + degt b ≤ degt (a + b))
-    (n : ℕ) (f : AddMonoidAlgebra R A) : n • f.support.inf degt ≤ (f ^ n).support.inf degt := by
+    (n : ℕ) (f : R[A]) : n • f.support.inf degt ≤ (f ^ n).support.inf degt := by
   refine' OrderDual.ofDual_le_ofDual.mpr <| sup_support_pow_le (OrderDual.ofDual_le_ofDual.mp _)
       (fun a b => OrderDual.ofDual_le_ofDual.mp _) n f
   exact degt0
@@ -177,16 +177,16 @@ variable [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [CovariantClass B
   {degb : A → B} {degt : A → T}
 
 theorem sup_support_multiset_prod_le (degb0 : degb 0 ≤ 0)
-    (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset (AddMonoidAlgebra R A)) :
-    m.prod.support.sup degb ≤ (m.map fun f : AddMonoidAlgebra R A => f.support.sup degb).sum := by
+    (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (m : Multiset R[A]) :
+    m.prod.support.sup degb ≤ (m.map fun f : R[A] => f.support.sup degb).sum := by
   induction m using Quot.inductionOn
   rw [Multiset.quot_mk_to_coe'', Multiset.coe_map, Multiset.coe_sum, Multiset.coe_prod]
   exact sup_support_list_prod_le degb0 degbm _
 #align add_monoid_algebra.sup_support_multiset_prod_le AddMonoidAlgebra.sup_support_multiset_prod_le
 
 theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
-    (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (m : Multiset (AddMonoidAlgebra R A)) :
-    (m.map fun f : AddMonoidAlgebra R A => f.support.inf degt).sum ≤ m.prod.support.inf degt := by
+    (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (m : Multiset R[A]) :
+    (m.map fun f : R[A] => f.support.inf degt).sum ≤ m.prod.support.inf degt := by
   refine' OrderDual.ofDual_le_ofDual.mpr <|
     sup_support_multiset_prod_le (OrderDual.ofDual_le_ofDual.mp _)
       (fun a b => OrderDual.ofDual_le_ofDual.mp (_)) m
@@ -195,13 +195,13 @@ theorem le_inf_support_multiset_prod (degt0 : 0 ≤ degt 0)
 #align add_monoid_algebra.le_inf_support_multiset_prod AddMonoidAlgebra.le_inf_support_multiset_prod
 
 theorem sup_support_finset_prod_le (degb0 : degb 0 ≤ 0)
-    (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
+    (degbm : ∀ a b, degb (a + b) ≤ degb a + degb b) (s : Finset ι) (f : ι → R[A]) :
     (∏ i in s, f i).support.sup degb ≤ ∑ i in s, (f i).support.sup degb :=
   (sup_support_multiset_prod_le degb0 degbm _).trans_eq <| congr_arg _ <| Multiset.map_map _ _ _
 #align add_monoid_algebra.sup_support_finset_prod_le AddMonoidAlgebra.sup_support_finset_prod_le
 
 theorem le_inf_support_finset_prod (degt0 : 0 ≤ degt 0)
-    (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → AddMonoidAlgebra R A) :
+    (degtm : ∀ a b, degt a + degt b ≤ degt (a + b)) (s : Finset ι) (f : ι → R[A]) :
     (∑ i in s, (f i).support.inf degt) ≤ (∏ i in s, f i).support.inf degt :=
   le_of_eq_of_le (by rw [Multiset.map_map]; rfl) (le_inf_support_multiset_prod degt0 degtm _)
 #align add_monoid_algebra.le_inf_support_finset_prod AddMonoidAlgebra.le_inf_support_finset_prod
@@ -227,22 +227,22 @@ variable [AddZeroClass A] [SemilatticeSup B] [AddZeroClass B] [OrderBot B]
 
 /-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `B` be an `OrderBot`,
 and let `D : A → B` be a "degree" function.
-For an element `f : R[A]`, the `AddMonoidAlgebra R A`, the element `supDegree f : B` is the
+For an element `f : R[A]`, the `R[A]`, the element `supDegree f : B` is the
 supremum of all the elements in the support of `f`, or `⊥` if `f` is zero.
 Often, the Type `B` is `WithBot A`,
 If, further, `A` has a linear order, then this notion coincides with the usual one,
 using the maximum of the exponents. -/
 @[reducible]
-def supDegree (f : AddMonoidAlgebra R A) : B :=
+def supDegree (f : R[A]) : B :=
   f.support.sup D
 
-theorem supDegree_add_le (f g : AddMonoidAlgebra R A) :
+theorem supDegree_add_le (f g : R[A]) :
     (f + g).supDegree D ≤ (f.supDegree D) ⊔ (g.supDegree D) :=
   sup_support_add_le D f g
 
 variable [CovariantClass B B (· + ·) (· ≤ ·)] [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)]
   (D : A →+ B) in
-theorem supDegree_mul_le (f g : AddMonoidAlgebra R A) :
+theorem supDegree_mul_le (f g : R[A]) :
     (f * g).supDegree D ≤ f.supDegree D + g.supDegree D :=
   sup_support_mul_le (fun {_ _} => (AddMonoidHom.map_add D _ _).le) f g
 
@@ -254,22 +254,22 @@ variable [AddZeroClass A] [SemilatticeInf T] [AddZeroClass T] [OrderTop T]
 
 /-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `T` be an `OrderTop`,
 and let `D : A → T` be a "degree" function.
-For an element `f : R[A]`, the `AddMonoidAlgebra R A`, the element `infDegree f : T` is the
+For an element `f : R[A]`, the `R[A]`, the element `infDegree f : T` is the
 infimum of all the elements in the support of `f`, or `⊤` if `f` is zero.
 Often, the Type `T` is `WithTop A`,
 If, further, `A` has a linear order, then this notion coincides with the usual one,
 using the minimum of the exponents. -/
 @[reducible]
-def infDegree (D : A → T) (f : AddMonoidAlgebra R A) : T :=
+def infDegree (D : A → T) (f : R[A]) : T :=
   f.support.inf D
 
-theorem le_infDegree_add (D : A → T) (f g : AddMonoidAlgebra R A) :
+theorem le_infDegree_add (D : A → T) (f g : R[A]) :
     (f.infDegree D) ⊓ (g.infDegree D) ≤ (f + g).infDegree D :=
   le_inf_support_add D f g
 
 variable [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   (D : A →+ T) in
-theorem le_infDegree_mul (f g : AddMonoidAlgebra R A) :
+theorem le_infDegree_mul (f g : R[A]) :
     f.infDegree D + g.infDegree D ≤ (f * g).infDegree D :=
   --  Porting note: added `a b` in `AddMonoidHom.map_add D a b`, was `AddMonoidHom.map_add D _ _`
   le_inf_support_mul (fun {a b : A} => (AddMonoidHom.map_add D a b).ge) _ _
chore: Remove noaligns from MonoidAlgebra.Degree (#6574)

There seems to have been a misunderstanding about the purpose of this command.

Diff
@@ -235,19 +235,16 @@ using the maximum of the exponents. -/
 @[reducible]
 def supDegree (f : AddMonoidAlgebra R A) : B :=
   f.support.sup D
-#noalign AddMonoidAlgebra.supDegree
 
 theorem supDegree_add_le (f g : AddMonoidAlgebra R A) :
     (f + g).supDegree D ≤ (f.supDegree D) ⊔ (g.supDegree D) :=
   sup_support_add_le D f g
-#noalign AddMonoidAlgebra.supDegree_add_le
 
 variable [CovariantClass B B (· + ·) (· ≤ ·)] [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)]
   (D : A →+ B) in
 theorem supDegree_mul_le (f g : AddMonoidAlgebra R A) :
     (f * g).supDegree D ≤ f.supDegree D + g.supDegree D :=
   sup_support_mul_le (fun {_ _} => (AddMonoidHom.map_add D _ _).le) f g
-#noalign AddMonoidAlgebra.supDegree_mul_le
 
 end SupDegree
 
@@ -265,12 +262,10 @@ using the minimum of the exponents. -/
 @[reducible]
 def infDegree (D : A → T) (f : AddMonoidAlgebra R A) : T :=
   f.support.inf D
-#noalign AddMonoidAlgebra.infDegree
 
 theorem le_infDegree_add (D : A → T) (f g : AddMonoidAlgebra R A) :
     (f.infDegree D) ⊓ (g.infDegree D) ≤ (f + g).infDegree D :=
   le_inf_support_add D f g
-#noalign AddMonoidAlgebra.le_infDegree_add
 
 variable [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
   (D : A →+ T) in
@@ -278,7 +273,6 @@ theorem le_infDegree_mul (f g : AddMonoidAlgebra R A) :
     f.infDegree D + g.infDegree D ≤ (f * g).infDegree D :=
   --  Porting note: added `a b` in `AddMonoidHom.map_add D a b`, was `AddMonoidHom.map_add D _ _`
   le_inf_support_mul (fun {a b : A} => (AddMonoidHom.map_add D a b).ge) _ _
-#noalign AddMonoidAlgebra.le_infDegree_mul
 
 end InfDegree
 
feat: add definitions of degrees of AddMonoidAlgebras (#6260)

This PR defines

  1. the supDegree of an AddMonoidAlgebra, graded by a SemilatticeSup;
  2. the infDegree of an AddMonoidAlgebra, graded by a SemilatticeInf;
  3. the maxDegree of an AddMonoidAlgebra, graded by a LinearOrder with a bottom element;
  4. the minDegree of an AddMonoidAlgebra, graded by a LinearOrder with a top element.

It also proves that under addition and multiplication in the AddMonoidAlgebra, each degree behaves as expected.

The lemmas are there simply to give a sample usage of the new definition.

The corresponding mathlib3 PR was not-too-late and closed unmerged.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -24,7 +24,45 @@ namespace AddMonoidAlgebra
 
 open Classical BigOperators
 
-/-! ### Results about the `Finset.sup` and `Finset.inf` of `Finsupp.support` -/
+/-!
+
+# sup-degree and inf-degree of an `AddMonoidAlgebra`
+
+Let `R` be a semiring and let `A` be a `SemilatticeSup`.
+For an element `f : AddMonoidAlgebra R A`, this file defines
+* `AddMonoidAlgebra.supDegree`: the sup-degree taking values in `WithBot A`,
+* `AddMonoidAlgebra.infDegree`: the inf-degree taking values in `WithTop A`.
+
+If the grading type `A` is a linearly ordered additive monoid, then these two notions of degree
+coincide with the standard one:
+* the sup-degree is the maximum of the exponents of the monomials that appear with non-zero
+  coefficient in `f`, or `⊥`, if `f = 0`;
+* the inf-degree is the minimum of the exponents of the monomials that appear with non-zero
+  coefficient in `f`, or `⊤`, if `f = 0`.
+
+The main results are
+* `AddMonoidAlgebra.supDegree_mul_le`:
+  the sup-degree of a product is at most the sum of the sup-degrees,
+* `AddMonoidAlgebra.le_infDegree_mul`:
+  the inf-degree of a product is at least the sum of the inf-degrees,
+* `AddMonoidAlgebra.supDegree_add_le`:
+  the sup-degree of a sum is at most the sup of the sup-degrees,
+* `AddMonoidAlgebra.le_infDegree_add`:
+  the inf-degree of a sum is at least the inf of the inf-degrees.
+
+## Implementation notes
+
+The current plan is to state and prove lemmas about `Finset.sup (Finsupp.support f) D` with a
+"generic" degree/weight function `D` from the grading Type `A` to a somewhat ordered Type `B`.
+Next, the general lemmas get specialized twice:
+* once for `supDegree` (essentially a simple application) and
+* once for `infDegree` (a simple application, via `OrderDual`).
+
+These final lemmas are the ones that likely get used the most.  The generic lemmas about
+`Finset.support.sup` may not be used directly much outside of this file.
+To see this in action, you can look at the triple
+`(sup_support_mul_le, maxDegree_mul_le, le_minDegree_mul)`.
+-/
 
 
 section GeneralResultsAssumingSemilatticeSup
@@ -172,4 +210,78 @@ end CommutativeLemmas
 
 end GeneralResultsAssumingSemilatticeSup
 
+
+/-! ### Shorthands for special cases
+Note that these definitions are reducible, in order to make it easier to apply the more generic
+lemmas above. -/
+
+
+section Degrees
+
+variable [Semiring R]
+
+section SupDegree
+
+variable [AddZeroClass A] [SemilatticeSup B] [AddZeroClass B] [OrderBot B]
+  (D : A → B)
+
+/-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `B` be an `OrderBot`,
+and let `D : A → B` be a "degree" function.
+For an element `f : R[A]`, the `AddMonoidAlgebra R A`, the element `supDegree f : B` is the
+supremum of all the elements in the support of `f`, or `⊥` if `f` is zero.
+Often, the Type `B` is `WithBot A`,
+If, further, `A` has a linear order, then this notion coincides with the usual one,
+using the maximum of the exponents. -/
+@[reducible]
+def supDegree (f : AddMonoidAlgebra R A) : B :=
+  f.support.sup D
+#noalign AddMonoidAlgebra.supDegree
+
+theorem supDegree_add_le (f g : AddMonoidAlgebra R A) :
+    (f + g).supDegree D ≤ (f.supDegree D) ⊔ (g.supDegree D) :=
+  sup_support_add_le D f g
+#noalign AddMonoidAlgebra.supDegree_add_le
+
+variable [CovariantClass B B (· + ·) (· ≤ ·)] [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)]
+  (D : A →+ B) in
+theorem supDegree_mul_le (f g : AddMonoidAlgebra R A) :
+    (f * g).supDegree D ≤ f.supDegree D + g.supDegree D :=
+  sup_support_mul_le (fun {_ _} => (AddMonoidHom.map_add D _ _).le) f g
+#noalign AddMonoidAlgebra.supDegree_mul_le
+
+end SupDegree
+
+section InfDegree
+
+variable [AddZeroClass A] [SemilatticeInf T] [AddZeroClass T] [OrderTop T]
+
+/-- Let `R` be a semiring, let `A, B` be two `AddZeroClass`es, let `T` be an `OrderTop`,
+and let `D : A → T` be a "degree" function.
+For an element `f : R[A]`, the `AddMonoidAlgebra R A`, the element `infDegree f : T` is the
+infimum of all the elements in the support of `f`, or `⊤` if `f` is zero.
+Often, the Type `T` is `WithTop A`,
+If, further, `A` has a linear order, then this notion coincides with the usual one,
+using the minimum of the exponents. -/
+@[reducible]
+def infDegree (D : A → T) (f : AddMonoidAlgebra R A) : T :=
+  f.support.inf D
+#noalign AddMonoidAlgebra.infDegree
+
+theorem le_infDegree_add (D : A → T) (f g : AddMonoidAlgebra R A) :
+    (f.infDegree D) ⊓ (g.infDegree D) ≤ (f + g).infDegree D :=
+  le_inf_support_add D f g
+#noalign AddMonoidAlgebra.le_infDegree_add
+
+variable [CovariantClass T T (· + ·) (· ≤ ·)] [CovariantClass T T (Function.swap (· + ·)) (· ≤ ·)]
+  (D : A →+ T) in
+theorem le_infDegree_mul (f g : AddMonoidAlgebra R A) :
+    f.infDegree D + g.infDegree D ≤ (f * g).infDegree D :=
+  --  Porting note: added `a b` in `AddMonoidHom.map_add D a b`, was `AddMonoidHom.map_add D _ _`
+  le_inf_support_mul (fun {a b : A} => (AddMonoidHom.map_add D a b).ge) _ _
+#noalign AddMonoidAlgebra.le_infDegree_mul
+
+end InfDegree
+
+end Degrees
+
 end AddMonoidAlgebra
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
@@ -18,7 +18,7 @@ Next, the general lemmas get specialized for some yet-to-be-defined `degree`s.
 -/
 
 
-variable {R A T B ι : Type _}
+variable {R A T B ι : Type*}
 
 namespace AddMonoidAlgebra
 
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 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.degree
-! leanprover-community/mathlib commit f694c7dead66f5d4c80f446c796a5aad14707f0e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.MonoidAlgebra.Support
 
+#align_import algebra.monoid_algebra.degree from "leanprover-community/mathlib"@"f694c7dead66f5d4c80f446c796a5aad14707f0e"
+
 /-!
 # Lemmas about the `sup` and `inf` of the support of `AddMonoidAlgebra`
 
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -69,7 +69,7 @@ theorem sup_support_mul_le {degb : A → B} (degbm : ∀ {a b}, degb (a + b) ≤
     (f g : AddMonoidAlgebra R A) :
     (f * g).support.sup degb ≤ f.support.sup degb + g.support.sup degb := by
   refine' (Finset.sup_mono <| support_mul _ _).trans _
-  simp_rw [Finset.sup_bunionᵢ, Finset.sup_singleton]
+  simp_rw [Finset.sup_biUnion, Finset.sup_singleton]
   refine' Finset.sup_le fun fd fds => Finset.sup_le fun gd gds => degbm.trans <| add_le_add _ _ <;>
     exact Finset.le_sup ‹_›
 #align add_monoid_algebra.sup_support_mul_le AddMonoidAlgebra.sup_support_mul_le
feat: port Algebra.MonoidAlgebra.Degree (#2918)

Co-authored-by: Moritz Firsching <firsching@google.com>

Dependencies 8 + 377

378 files ported (97.9%)
158200 lines ported (98.1%)
Show graph

The unported dependencies are