combinatorics.pigeonholeMathlib.Combinatorics.Pigeonhole

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -5,7 +5,7 @@ Authors: Kyle Miller, Yury Kudryashov
 -/
 import Data.Nat.ModEq
 import Data.Set.Finite
-import Algebra.BigOperators.Order
+import Algebra.Order.BigOperators.Group.Finset
 import Algebra.Module.Basic
 import Algebra.Module.BigOperators
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Kyle Miller. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Yury Kudryashov
 -/
-import Data.Nat.Modeq
+import Data.Nat.ModEq
 import Data.Set.Finite
 import Algebra.BigOperators.Order
 import Algebra.Module.Basic
@@ -136,7 +136,7 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
@@ -154,7 +154,7 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
@@ -195,7 +195,7 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
@@ -213,7 +213,7 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2020 Kyle Miller. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Yury Kudryashov
 -/
-import Mathbin.Data.Nat.Modeq
-import Mathbin.Data.Set.Finite
-import Mathbin.Algebra.BigOperators.Order
-import Mathbin.Algebra.Module.Basic
-import Mathbin.Algebra.Module.BigOperators
+import Data.Nat.Modeq
+import Data.Set.Finite
+import Algebra.BigOperators.Order
+import Algebra.Module.Basic
+import Algebra.Module.BigOperators
 
 #align_import combinatorics.pigeonhole from "leanprover-community/mathlib"@"63f84d91dd847f50bae04a01071f3a5491934e36"
 
@@ -136,7 +136,7 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
@@ -154,7 +154,7 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
@@ -195,7 +195,7 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
@@ -213,7 +213,7 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Kyle Miller. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Yury Kudryashov
-
-! This file was ported from Lean 3 source module combinatorics.pigeonhole
-! leanprover-community/mathlib commit 63f84d91dd847f50bae04a01071f3a5491934e36
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Nat.Modeq
 import Mathbin.Data.Set.Finite
@@ -14,6 +9,8 @@ import Mathbin.Algebra.BigOperators.Order
 import Mathbin.Algebra.Module.Basic
 import Mathbin.Algebra.Module.BigOperators
 
+#align_import combinatorics.pigeonhole from "leanprover-community/mathlib"@"63f84d91dd847f50bae04a01071f3a5491934e36"
+
 /-!
 # Pigeonhole principles
 
@@ -139,7 +136,7 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
@@ -157,7 +154,7 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
@@ -198,7 +195,7 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
@@ -216,7 +213,7 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 #print Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
Diff
@@ -117,6 +117,7 @@ variable [LinearOrderedCancelAddCommMonoid M]
 -/
 
 
+#print Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, and they are sorted into
 `n` pigeonholes, then for some pigeonhole, the total weight of the pigeons in this pigeonhole is
@@ -125,7 +126,9 @@ theorem exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (hf : ∀ a ∈ s, f a 
     (hb : t.card • b < ∑ x in s, w x) : ∃ y ∈ t, b < ∑ x in s.filterₓ fun x => f x = y, w x :=
   exists_lt_of_sum_lt <| by simpa only [sum_fiberwise_of_maps_to hf, sum_const]
 #align finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum
+-/
 
+#print Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, and they are sorted into `n`
 pigeonholes, then for some pigeonhole, the total weight of the pigeons in this pigeonhole is less
@@ -134,8 +137,10 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
     (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf hb
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+#print Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
 pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons there is nonpositive,
@@ -150,8 +155,10 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
       _ ≤ ∑ y in t, ∑ x in s.filterₓ fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos ht
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+#print Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
 pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons there is nonnegative,
@@ -162,12 +169,14 @@ theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
     (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ ht hb
 #align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
+-/
 
 /-!
 #### Non-strict inequality versions
 -/
 
 
+#print Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, and
 they are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight of the pigeons
@@ -176,7 +185,9 @@ theorem exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (hf : ∀ a ∈ s, f a 
     (hb : t.card • b ≤ ∑ x in s, w x) : ∃ y ∈ t, b ≤ ∑ x in s.filterₓ fun x => f x = y, w x :=
   exists_le_of_sum_le ht <| by simpa only [sum_fiberwise_of_maps_to hf, sum_const]
 #align finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum
+-/
 
+#print Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, and they
 are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight of the pigeons in
@@ -185,8 +196,10 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
     (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+#print Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
 are sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weight of the
@@ -201,8 +214,10 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
       _ ≤ ∑ y in t, ∑ x in s.filterₓ fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos hf
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
+#print Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
 sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weight of the pigeons
@@ -213,6 +228,7 @@ theorem exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
     (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
+-/
 
 end
 
@@ -236,6 +252,7 @@ So, we prove four theorems: `finset.exists_lt_card_fiber_of_maps_to_of_mul_lt_ca
 `finset.exists_card_fiber_lt_of_card_lt_mul`, and `finset.exists_card_fiber_le_of_card_le_mul`. -/
 
 
+#print Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at least as many pigeons as the ceiling of the average number of pigeons across all pigeonholes. -/
 theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
@@ -244,7 +261,9 @@ theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a
   simp_rw [cast_card] at ht ⊢
   exact exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum hf ht
 #align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to
+-/
 
+#print Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at least as many pigeons as the ceiling of the average number of pigeons across all pigeonholes.
 ("The maximum is at least the mean" specialized to integers.)
@@ -256,7 +275,9 @@ theorem exists_lt_card_fiber_of_mul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a 
     (hn : t.card * n < s.card) : ∃ y ∈ t, n < (s.filterₓ fun x => f x = y).card :=
   exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to hf hn
 #align finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to
+-/
 
+#print Finset.exists_card_fiber_lt_of_card_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at most as many pigeons as the floor of the average number of pigeons across all pigeonholes. -/
 theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
@@ -267,7 +288,9 @@ theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
     exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht
 #align finset.exists_card_fiber_lt_of_card_lt_nsmul Finset.exists_card_fiber_lt_of_card_lt_nsmul
+-/
 
+#print Finset.exists_card_fiber_lt_of_card_lt_mul /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at most as many pigeons as the floor of the average number of pigeons across all pigeonholes.  ("The
 minimum is at most the mean" specialized to integers.)
@@ -279,7 +302,9 @@ theorem exists_card_fiber_lt_of_card_lt_mul (hn : s.card < t.card * n) :
     ∃ y ∈ t, (s.filterₓ fun x => f x = y).card < n :=
   exists_card_fiber_lt_of_card_lt_nsmul hn
 #align finset.exists_card_fiber_lt_of_card_lt_mul Finset.exists_card_fiber_lt_of_card_lt_mul
+-/
 
+#print Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function between
 finite sets `s` and `t` and a number `b` such that `card t • b ≤ card s`, there exists `y ∈ t` such
 that its preimage in `s` has at least `b` elements.
@@ -290,7 +315,9 @@ theorem exists_le_card_fiber_of_nsmul_le_card_of_maps_to (hf : ∀ a ∈ s, f a
   simp_rw [cast_card] at hb ⊢
   exact exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum hf ht hb
 #align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to
+-/
 
+#print Finset.exists_le_card_fiber_of_mul_le_card_of_maps_to /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function between
 finite sets `s` and `t` and a natural number `b` such that `card t * n ≤ card s`, there exists `y ∈
 t` such that its preimage in `s` has at least `n` elements. See also
@@ -299,7 +326,9 @@ theorem exists_le_card_fiber_of_mul_le_card_of_maps_to (hf : ∀ a ∈ s, f a 
     (hn : t.card * n ≤ s.card) : ∃ y ∈ t, n ≤ (s.filterₓ fun x => f x = y).card :=
   exists_le_card_fiber_of_nsmul_le_card_of_maps_to hf ht hn
 #align finset.exists_le_card_fiber_of_mul_le_card_of_maps_to Finset.exists_le_card_fiber_of_mul_le_card_of_maps_to
+-/
 
+#print Finset.exists_card_fiber_le_of_card_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function `f`, a
 finite sets `s` and `t`, and a number `b` such that `card s ≤ card t • b`, there exists `y ∈ t` such
 that its preimage in `s` has no more than `b` elements.
@@ -312,7 +341,9 @@ theorem exists_card_fiber_le_of_card_le_nsmul (ht : t.Nonempty) (hb : ↑s.card
     exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht hb
 #align finset.exists_card_fiber_le_of_card_le_nsmul Finset.exists_card_fiber_le_of_card_le_nsmul
+-/
 
+#print Finset.exists_card_fiber_le_of_card_le_mul /-
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function `f`, a
 finite sets `s` in its domain, a finite set `t` in its codomain, and a natural number `n` such that
 `card s ≤ card t * n`, there exists `y ∈ t` such that its preimage in `s` has no more than `n`
@@ -321,6 +352,7 @@ theorem exists_card_fiber_le_of_card_le_mul (ht : t.Nonempty) (hn : s.card ≤ t
     ∃ y ∈ t, (s.filterₓ fun x => f x = y).card ≤ n :=
   exists_card_fiber_le_of_card_le_nsmul ht hn
 #align finset.exists_card_fiber_le_of_card_le_mul Finset.exists_card_fiber_le_of_card_le_mul
+-/
 
 end Finset
 
@@ -496,6 +528,7 @@ namespace Nat
 
 open Set
 
+#print Nat.exists_lt_modEq_of_infinite /-
 /-- If `s` is an infinite set of natural numbers and `k > 0`, then `s` contains two elements `m < n`
 that are equal mod `k`. -/
 theorem exists_lt_modEq_of_infinite {s : Set ℕ} (hs : s.Infinite) {k : ℕ} (hk : 0 < k) :
@@ -503,6 +536,7 @@ theorem exists_lt_modEq_of_infinite {s : Set ℕ} (hs : s.Infinite) {k : ℕ} (h
   (hs.exists_lt_map_eq_of_mapsTo fun n _ => show n % k ∈ Iio k from Nat.mod_lt n hk) <|
     finite_lt_nat k
 #align nat.exists_lt_modeq_of_infinite Nat.exists_lt_modEq_of_infinite
+-/
 
 end Nat
 
Diff
@@ -131,7 +131,7 @@ if the total weight of a finite set of pigeons is less than `n • b`, and they
 pigeonholes, then for some pigeonhole, the total weight of the pigeons in this pigeonhole is less
 than `b`. -/
 theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a ∈ t)
-    (hb : (∑ x in s, w x) < t.card • b) : ∃ y ∈ t, (∑ x in s.filterₓ fun x => f x = y, w x) < b :=
+    (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf hb
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 
@@ -142,11 +142,11 @@ pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons the
 then for at least one of these `n` pigeonholes, the total weight of the pigeons in this pigeonhole
 is greater than `b`. -/
 theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
-    (ht : ∀ (y) (_ : y ∉ t), (∑ x in s.filterₓ fun x => f x = y, w x) ≤ 0)
+    (ht : ∀ (y) (_ : y ∉ t), ∑ x in s.filterₓ fun x => f x = y, w x ≤ 0)
     (hb : t.card • b < ∑ x in s, w x) : ∃ y ∈ t, b < ∑ x in s.filterₓ fun x => f x = y, w x :=
   exists_lt_of_sum_lt <|
     calc
-      (∑ y in t, b) < ∑ x in s, w x := by simpa
+      ∑ y in t, b < ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filterₓ fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos ht
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
@@ -159,7 +159,7 @@ then for at least one of these `n` pigeonholes, the total weight of the pigeons
 is less than `b`. -/
 theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
     (ht : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filterₓ fun x => f x = y, w x)
-    (hb : (∑ x in s, w x) < t.card • b) : ∃ y ∈ t, (∑ x in s.filterₓ fun x => f x = y, w x) < b :=
+    (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ ht hb
 #align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
 
@@ -182,7 +182,7 @@ version: if the total weight of a finite set of pigeons is less than or equal to
 are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight of the pigeons in
 this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
-    (hb : (∑ x in s, w x) ≤ t.card • b) : ∃ y ∈ t, (∑ x in s.filterₓ fun x => f x = y, w x) ≤ b :=
+    (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 
@@ -193,11 +193,11 @@ are sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total
 pigeons there is nonpositive, then for at least one of these `n` pigeonholes, the total weight of
 the pigeons in this pigeonhole is greater than or equal to `b`. -/
 theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
-    (hf : ∀ (y) (_ : y ∉ t), (∑ x in s.filterₓ fun x => f x = y, w x) ≤ 0) (ht : t.Nonempty)
+    (hf : ∀ (y) (_ : y ∉ t), ∑ x in s.filterₓ fun x => f x = y, w x ≤ 0) (ht : t.Nonempty)
     (hb : t.card • b ≤ ∑ x in s, w x) : ∃ y ∈ t, b ≤ ∑ x in s.filterₓ fun x => f x = y, w x :=
   exists_le_of_sum_le ht <|
     calc
-      (∑ y in t, b) ≤ ∑ x in s, w x := by simpa
+      ∑ y in t, b ≤ ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filterₓ fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos hf
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
@@ -210,7 +210,7 @@ there is nonnegative, then for at least one of these `n` pigeonholes, the total
 pigeons in this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
     (hf : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filterₓ fun x => f x = y, w x) (ht : t.Nonempty)
-    (hb : (∑ x in s, w x) ≤ t.card • b) : ∃ y ∈ t, (∑ x in s.filterₓ fun x => f x = y, w x) ≤ b :=
+    (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filterₓ fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
 
@@ -370,8 +370,8 @@ theorem exists_le_sum_fiber_of_nsmul_le_sum [Nonempty β] (hb : card β • b 
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than `b` provided that
 the total number of pigeonholes times `b` is greater than the total weight of all pigeons. -/
-theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b) :
-    ∃ y, (∑ x in univ.filterₓ fun x => f x = y, w x) < b :=
+theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : ∑ x, w x < card β • b) :
+    ∃ y, ∑ x in univ.filterₓ fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul
 -/
@@ -381,8 +381,8 @@ theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b)
 version: there is a pigeonhole with the total weight of pigeons in it less than or equal to `b`
 provided that the total number of pigeonholes times `b` is greater than or equal to the total weight
 of all pigeons. -/
-theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : (∑ x, w x) ≤ card β • b) :
-    ∃ y, (∑ x in univ.filterₓ fun x => f x = y, w x) ≤ b :=
+theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : ∑ x, w x ≤ card β • b) :
+    ∃ y, ∑ x in univ.filterₓ fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmul
 -/
Diff
@@ -149,7 +149,6 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
       (∑ y in t, b) < ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filterₓ fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos ht
-      
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
@@ -201,7 +200,6 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
       (∑ y in t, b) ≤ ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filterₓ fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos hf
-      
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
Diff
@@ -135,7 +135,7 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
   @exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf hb
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
 pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons there is nonpositive,
@@ -152,7 +152,7 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
       
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
 pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons there is nonnegative,
@@ -187,7 +187,7 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
   @exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
 are sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weight of the
@@ -204,7 +204,7 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
       
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
 sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weight of the pigeons
Diff
@@ -243,7 +243,7 @@ at least as many pigeons as the ceiling of the average number of pigeons across
 theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
     (ht : t.card • b < s.card) : ∃ y ∈ t, b < (s.filterₓ fun x => f x = y).card :=
   by
-  simp_rw [cast_card] at ht⊢
+  simp_rw [cast_card] at ht ⊢
   exact exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum hf ht
 #align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to
 
@@ -264,7 +264,7 @@ at most as many pigeons as the floor of the average number of pigeons across all
 theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
     ∃ y ∈ t, ↑(s.filterₓ fun x => f x = y).card < b :=
   by
-  simp_rw [cast_card] at ht⊢
+  simp_rw [cast_card] at ht ⊢
   exact
     exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht
@@ -289,7 +289,7 @@ See also `finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to` for a stronge
 theorem exists_le_card_fiber_of_nsmul_le_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
     (hb : t.card • b ≤ s.card) : ∃ y ∈ t, b ≤ (s.filterₓ fun x => f x = y).card :=
   by
-  simp_rw [cast_card] at hb⊢
+  simp_rw [cast_card] at hb ⊢
   exact exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum hf ht hb
 #align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to
 
@@ -309,7 +309,7 @@ See also `finset.exists_card_fiber_lt_of_card_lt_nsmul` for a stronger statement
 theorem exists_card_fiber_le_of_card_le_nsmul (ht : t.Nonempty) (hb : ↑s.card ≤ t.card • b) :
     ∃ y ∈ t, ↑(s.filterₓ fun x => f x = y).card ≤ b :=
   by
-  simp_rw [cast_card] at hb⊢
+  simp_rw [cast_card] at hb ⊢
   refine'
     exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht hb
Diff
@@ -76,7 +76,7 @@ variable {α : Type u} {β : Type v} {M : Type w} [DecidableEq β]
 
 open Nat
 
-open BigOperators
+open scoped BigOperators
 
 namespace Finset
 
@@ -344,6 +344,7 @@ between `fintype`s and `s = univ`, `t = univ`. In this case the assumption `∀
 holds, so we have four theorems instead of eight. -/
 
 
+#print Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum /-
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it greater than `b` provided that
 the total number of pigeonholes times `b` is less than the total weight of all pigeons. -/
@@ -352,7 +353,9 @@ theorem exists_lt_sum_fiber_of_nsmul_lt_sum (hb : card β • b < ∑ x, w x) :
   let ⟨y, _, hy⟩ := exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (fun _ _ => mem_univ _) hb
   ⟨y, hy⟩
 #align fintype.exists_lt_sum_fiber_of_nsmul_lt_sum Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum
+-/
 
+#print Fintype.exists_le_sum_fiber_of_nsmul_le_sum /-
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it greater than or equal to `b`
 provided that the total number of pigeonholes times `b` is less than or equal to the total weight of
@@ -363,7 +366,9 @@ theorem exists_le_sum_fiber_of_nsmul_le_sum [Nonempty β] (hb : card β • b 
     exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (fun _ _ => mem_univ _) univ_nonempty hb
   ⟨y, hy⟩
 #align fintype.exists_le_sum_fiber_of_nsmul_le_sum Fintype.exists_le_sum_fiber_of_nsmul_le_sum
+-/
 
+#print Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than `b` provided that
 the total number of pigeonholes times `b` is greater than the total weight of all pigeons. -/
@@ -371,7 +376,9 @@ theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b)
     ∃ y, (∑ x in univ.filterₓ fun x => f x = y, w x) < b :=
   @exists_lt_sum_fiber_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul
+-/
 
+#print Fintype.exists_sum_fiber_le_of_sum_le_nsmul /-
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than or equal to `b`
 provided that the total number of pigeonholes times `b` is greater than or equal to the total weight
@@ -380,11 +387,13 @@ theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : (∑ x, w x) ≤
     ∃ y, (∑ x in univ.filterₓ fun x => f x = y, w x) ≤ b :=
   @exists_le_sum_fiber_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmul
+-/
 
 end
 
 variable [LinearOrderedCommSemiring M]
 
+#print Fintype.exists_lt_card_fiber_of_nsmul_lt_card /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes. There is a pigeonhole
 with at least as many pigeons as the ceiling of the average number of pigeons across all
 pigeonholes. -/
@@ -393,6 +402,7 @@ theorem exists_lt_card_fiber_of_nsmul_lt_card (hb : card β • b < card α) :
   let ⟨y, _, h⟩ := exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (fun _ _ => mem_univ _) hb
   ⟨y, h⟩
 #align fintype.exists_lt_card_fiber_of_nsmul_lt_card Fintype.exists_lt_card_fiber_of_nsmul_lt_card
+-/
 
 #print Fintype.exists_lt_card_fiber_of_mul_lt_card /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.
@@ -409,6 +419,7 @@ theorem exists_lt_card_fiber_of_mul_lt_card (hn : card β * n < card α) :
 #align fintype.exists_lt_card_fiber_of_mul_lt_card Fintype.exists_lt_card_fiber_of_mul_lt_card
 -/
 
+#print Fintype.exists_card_fiber_lt_of_card_lt_nsmul /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes. There is a pigeonhole
 with at most as many pigeons as the floor of the average number of pigeons across all pigeonholes.
 -/
@@ -417,6 +428,7 @@ theorem exists_card_fiber_lt_of_card_lt_nsmul (hb : ↑(card α) < card β • b
   let ⟨y, _, h⟩ := exists_card_fiber_lt_of_card_lt_nsmul hb
   ⟨y, h⟩
 #align fintype.exists_card_fiber_lt_of_card_lt_nsmul Fintype.exists_card_fiber_lt_of_card_lt_nsmul
+-/
 
 #print Fintype.exists_card_fiber_lt_of_card_lt_mul /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.
@@ -433,6 +445,7 @@ theorem exists_card_fiber_lt_of_card_lt_mul (hn : card α < card β * n) :
 #align fintype.exists_card_fiber_lt_of_card_lt_mul Fintype.exists_card_fiber_lt_of_card_lt_mul
 -/
 
+#print Fintype.exists_le_card_fiber_of_nsmul_le_card /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
 between finite types `α` and `β` and a number `b` such that `card β • b ≤ card α`, there exists an
 element `y : β` such that its preimage has at least `b` elements.
@@ -443,6 +456,7 @@ theorem exists_le_card_fiber_of_nsmul_le_card [Nonempty β] (hb : card β • b
     exists_le_card_fiber_of_nsmul_le_card_of_maps_to (fun _ _ => mem_univ _) univ_nonempty hb
   ⟨y, h⟩
 #align fintype.exists_le_card_fiber_of_nsmul_le_card Fintype.exists_le_card_fiber_of_nsmul_le_card
+-/
 
 #print Fintype.exists_le_card_fiber_of_mul_le_card /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
@@ -455,6 +469,7 @@ theorem exists_le_card_fiber_of_mul_le_card [Nonempty β] (hn : card β * n ≤
 #align fintype.exists_le_card_fiber_of_mul_le_card Fintype.exists_le_card_fiber_of_mul_le_card
 -/
 
+#print Fintype.exists_card_fiber_le_of_card_le_nsmul /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
 between finite types `α` and `β` and a number `b` such that `card α ≤ card β • b`, there exists an
 element `y : β` such that its preimage has at most `b` elements.
@@ -464,6 +479,7 @@ theorem exists_card_fiber_le_of_card_le_nsmul [Nonempty β] (hb : ↑(card α) 
   let ⟨y, _, h⟩ := exists_card_fiber_le_of_card_le_nsmul univ_nonempty hb
   ⟨y, h⟩
 #align fintype.exists_card_fiber_le_of_card_le_nsmul Fintype.exists_card_fiber_le_of_card_le_nsmul
+-/
 
 #print Fintype.exists_card_fiber_le_of_card_le_mul /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
Diff
@@ -117,12 +117,6 @@ variable [LinearOrderedCancelAddCommMonoid M]
 -/
 
 
-/- warning: finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum -> Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sumₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, and they are sorted into
 `n` pigeonholes, then for some pigeonhole, the total weight of the pigeons in this pigeonhole is
@@ -132,12 +126,6 @@ theorem exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (hf : ∀ a ∈ s, f a 
   exists_lt_of_sum_lt <| by simpa only [sum_fiberwise_of_maps_to hf, sum_const]
 #align finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum
 
-/- warning: finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul -> Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, and they are sorted into `n`
 pigeonholes, then for some pigeonhole, the total weight of the pigeons in this pigeonhole is less
@@ -147,12 +135,6 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
   @exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf hb
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 
-/- warning: finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum -> Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))))) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sumₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
@@ -170,12 +152,6 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
       
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 
-/- warning: finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul -> Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
@@ -193,12 +169,6 @@ theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
 -/
 
 
-/- warning: finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum -> Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sumₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, and
 they are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight of the pigeons
@@ -208,12 +178,6 @@ theorem exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (hf : ∀ a ∈ s, f a 
   exists_le_of_sum_le ht <| by simpa only [sum_fiberwise_of_maps_to hf, sum_const]
 #align finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum
 
-/- warning: finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul -> Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, and they
 are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight of the pigeons in
@@ -223,12 +187,6 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
   @exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 
-/- warning: finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum -> Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sumₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
@@ -246,12 +204,6 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
       
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 
-/- warning: finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul -> Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
@@ -286,12 +238,6 @@ So, we prove four theorems: `finset.exists_lt_card_fiber_of_maps_to_of_mul_lt_ca
 `finset.exists_card_fiber_lt_of_card_lt_mul`, and `finset.exists_card_fiber_le_of_card_le_mul`. -/
 
 
-/- warning: finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to -> Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_toₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at least as many pigeons as the ceiling of the average number of pigeons across all pigeonholes. -/
 theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
@@ -301,12 +247,6 @@ theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a
   exact exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum hf ht
 #align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to
 
-/- warning: finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to -> Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{0} Nat Nat.hasLt (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (Finset.card.{u2} β t) n) (Finset.card.{u1} α s)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{0} Nat Nat.hasLt n (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{0} Nat instLTNat (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (Finset.card.{u2} β t) n) (Finset.card.{u1} α s)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{0} Nat instLTNat n (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_toₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at least as many pigeons as the ceiling of the average number of pigeons across all pigeonholes.
 ("The maximum is at least the mean" specialized to integers.)
@@ -319,12 +259,6 @@ theorem exists_lt_card_fiber_of_mul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a 
   exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to hf hn
 #align finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to
 
-/- warning: finset.exists_card_fiber_lt_of_card_lt_nsmul -> Finset.exists_card_fiber_lt_of_card_lt_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_card_fiber_lt_of_card_lt_nsmul Finset.exists_card_fiber_lt_of_card_lt_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at most as many pigeons as the floor of the average number of pigeons across all pigeonholes. -/
 theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
@@ -336,12 +270,6 @@ theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht
 #align finset.exists_card_fiber_lt_of_card_lt_nsmul Finset.exists_card_fiber_lt_of_card_lt_nsmul
 
-/- warning: finset.exists_card_fiber_lt_of_card_lt_mul -> Finset.exists_card_fiber_lt_of_card_lt_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (Finset.card.{u1} α s) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (Finset.card.{u2} β t) n)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{0} Nat Nat.hasLt (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)) n)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (LT.lt.{0} Nat instLTNat (Finset.card.{u1} α s) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (Finset.card.{u2} β t) n)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{0} Nat instLTNat (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)) n)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_card_fiber_lt_of_card_lt_mul Finset.exists_card_fiber_lt_of_card_lt_mulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at most as many pigeons as the floor of the average number of pigeons across all pigeonholes.  ("The
 minimum is at most the mean" specialized to integers.)
@@ -354,12 +282,6 @@ theorem exists_card_fiber_lt_of_card_lt_mul (hn : s.card < t.card * n) :
   exists_card_fiber_lt_of_card_lt_nsmul hn
 #align finset.exists_card_fiber_lt_of_card_lt_mul Finset.exists_card_fiber_lt_of_card_lt_mul
 
-/- warning: finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to -> Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_toₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function between
 finite sets `s` and `t` and a number `b` such that `card t • b ≤ card s`, there exists `y ∈ t` such
 that its preimage in `s` has at least `b` elements.
@@ -371,12 +293,6 @@ theorem exists_le_card_fiber_of_nsmul_le_card_of_maps_to (hf : ∀ a ∈ s, f a
   exact exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum hf ht hb
 #align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to
 
-/- warning: finset.exists_le_card_fiber_of_mul_le_card_of_maps_to -> Finset.exists_le_card_fiber_of_mul_le_card_of_maps_to is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{0} Nat Nat.hasLe (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (Finset.card.{u2} β t) n) (Finset.card.{u1} α s)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{0} Nat Nat.hasLe n (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{0} Nat instLENat (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (Finset.card.{u2} β t) n) (Finset.card.{u1} α s)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{0} Nat instLENat n (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)))))
-Case conversion may be inaccurate. Consider using '#align finset.exists_le_card_fiber_of_mul_le_card_of_maps_to Finset.exists_le_card_fiber_of_mul_le_card_of_maps_toₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function between
 finite sets `s` and `t` and a natural number `b` such that `card t * n ≤ card s`, there exists `y ∈
 t` such that its preimage in `s` has at least `n` elements. See also
@@ -386,12 +302,6 @@ theorem exists_le_card_fiber_of_mul_le_card_of_maps_to (hf : ∀ a ∈ s, f a 
   exists_le_card_fiber_of_nsmul_le_card_of_maps_to hf ht hn
 #align finset.exists_le_card_fiber_of_mul_le_card_of_maps_to Finset.exists_le_card_fiber_of_mul_le_card_of_maps_to
 
-/- warning: finset.exists_card_fiber_le_of_card_le_nsmul -> Finset.exists_card_fiber_le_of_card_le_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_card_fiber_le_of_card_le_nsmul Finset.exists_card_fiber_le_of_card_le_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function `f`, a
 finite sets `s` and `t`, and a number `b` such that `card s ≤ card t • b`, there exists `y ∈ t` such
 that its preimage in `s` has no more than `b` elements.
@@ -405,12 +315,6 @@ theorem exists_card_fiber_le_of_card_le_nsmul (ht : t.Nonempty) (hb : ↑s.card
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht hb
 #align finset.exists_card_fiber_le_of_card_le_nsmul Finset.exists_card_fiber_le_of_card_le_nsmul
 
-/- warning: finset.exists_card_fiber_le_of_card_le_mul -> Finset.exists_card_fiber_le_of_card_le_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (Finset.Nonempty.{u2} β t) -> (LE.le.{0} Nat Nat.hasLe (Finset.card.{u1} α s) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (Finset.card.{u2} β t) n)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{0} Nat Nat.hasLe (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)) n)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {n : Nat}, (Finset.Nonempty.{u2} β t) -> (LE.le.{0} Nat instLENat (Finset.card.{u1} α s) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (Finset.card.{u2} β t) n)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{0} Nat instLENat (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s)) n)))
-Case conversion may be inaccurate. Consider using '#align finset.exists_card_fiber_le_of_card_le_mul Finset.exists_card_fiber_le_of_card_le_mulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function `f`, a
 finite sets `s` in its domain, a finite set `t` in its codomain, and a natural number `n` such that
 `card s ≤ card t * n`, there exists `y ∈ t` such that its preimage in `s` has no more than `n`
@@ -440,12 +344,6 @@ between `fintype`s and `s = univ`, `t = univ`. In this case the assumption `∀
 holds, so we have four theorems instead of eight. -/
 
 
-/- warning: fintype.exists_lt_sum_fiber_of_nsmul_lt_sum -> Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_lt_sum_fiber_of_nsmul_lt_sum Fintype.exists_lt_sum_fiber_of_nsmul_lt_sumₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it greater than `b` provided that
 the total number of pigeonholes times `b` is less than the total weight of all pigeons. -/
@@ -455,12 +353,6 @@ theorem exists_lt_sum_fiber_of_nsmul_lt_sum (hb : card β • b < ∑ x, w x) :
   ⟨y, hy⟩
 #align fintype.exists_lt_sum_fiber_of_nsmul_lt_sum Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum
 
-/- warning: fintype.exists_le_sum_fiber_of_nsmul_le_sum -> Fintype.exists_le_sum_fiber_of_nsmul_le_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_le_sum_fiber_of_nsmul_le_sum Fintype.exists_le_sum_fiber_of_nsmul_le_sumₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it greater than or equal to `b`
 provided that the total number of pigeonholes times `b` is less than or equal to the total weight of
@@ -472,12 +364,6 @@ theorem exists_le_sum_fiber_of_nsmul_le_sum [Nonempty β] (hb : card β • b 
   ⟨y, hy⟩
 #align fintype.exists_le_sum_fiber_of_nsmul_le_sum Fintype.exists_le_sum_fiber_of_nsmul_le_sum
 
-/- warning: fintype.exists_sum_fiber_lt_of_sum_lt_nsmul -> Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than `b` provided that
 the total number of pigeonholes times `b` is greater than the total weight of all pigeons. -/
@@ -486,12 +372,6 @@ theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b)
   @exists_lt_sum_fiber_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul
 
-/- warning: fintype.exists_sum_fiber_le_of_sum_le_nsmul -> Fintype.exists_sum_fiber_le_of_sum_le_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than or equal to `b`
 provided that the total number of pigeonholes times `b` is greater than or equal to the total weight
@@ -505,12 +385,6 @@ end
 
 variable [LinearOrderedCommSemiring M]
 
-/- warning: fintype.exists_lt_card_fiber_of_nsmul_lt_card -> Fintype.exists_lt_card_fiber_of_nsmul_lt_card is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_lt_card_fiber_of_nsmul_lt_card Fintype.exists_lt_card_fiber_of_nsmul_lt_cardₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes. There is a pigeonhole
 with at least as many pigeons as the ceiling of the average number of pigeons across all
 pigeonholes. -/
@@ -535,12 +409,6 @@ theorem exists_lt_card_fiber_of_mul_lt_card (hn : card β * n < card α) :
 #align fintype.exists_lt_card_fiber_of_mul_lt_card Fintype.exists_lt_card_fiber_of_mul_lt_card
 -/
 
-/- warning: fintype.exists_card_fiber_lt_of_card_lt_nsmul -> Fintype.exists_card_fiber_lt_of_card_lt_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_card_fiber_lt_of_card_lt_nsmul Fintype.exists_card_fiber_lt_of_card_lt_nsmulₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes. There is a pigeonhole
 with at most as many pigeons as the floor of the average number of pigeons across all pigeonholes.
 -/
@@ -565,12 +433,6 @@ theorem exists_card_fiber_lt_of_card_lt_mul (hn : card α < card β * n) :
 #align fintype.exists_card_fiber_lt_of_card_lt_mul Fintype.exists_card_fiber_lt_of_card_lt_mul
 -/
 
-/- warning: fintype.exists_le_card_fiber_of_nsmul_le_card -> Fintype.exists_le_card_fiber_of_nsmul_le_card is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_le_card_fiber_of_nsmul_le_card Fintype.exists_le_card_fiber_of_nsmul_le_cardₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
 between finite types `α` and `β` and a number `b` such that `card β • b ≤ card α`, there exists an
 element `y : β` such that its preimage has at least `b` elements.
@@ -593,12 +455,6 @@ theorem exists_le_card_fiber_of_mul_le_card [Nonempty β] (hn : card β * n ≤
 #align fintype.exists_le_card_fiber_of_mul_le_card Fintype.exists_le_card_fiber_of_mul_le_card
 -/
 
-/- warning: fintype.exists_card_fiber_le_of_card_le_nsmul -> Fintype.exists_card_fiber_le_of_card_le_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
-Case conversion may be inaccurate. Consider using '#align fintype.exists_card_fiber_le_of_card_le_nsmul Fintype.exists_card_fiber_le_of_card_le_nsmulₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
 between finite types `α` and `β` and a number `b` such that `card α ≤ card β • b`, there exists an
 element `y : β` such that its preimage has at most `b` elements.
@@ -626,12 +482,6 @@ namespace Nat
 
 open Set
 
-/- warning: nat.exists_lt_modeq_of_infinite -> Nat.exists_lt_modEq_of_infinite is a dubious translation:
-lean 3 declaration is
-  forall {s : Set.{0} Nat}, (Set.Infinite.{0} Nat s) -> (forall {k : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) k) -> (Exists.{1} Nat (fun (m : Nat) => Exists.{0} (Membership.Mem.{0, 0} Nat (Set.{0} Nat) (Set.hasMem.{0} Nat) m s) (fun (H : Membership.Mem.{0, 0} Nat (Set.{0} Nat) (Set.hasMem.{0} Nat) m s) => Exists.{1} Nat (fun (n : Nat) => Exists.{0} (Membership.Mem.{0, 0} Nat (Set.{0} Nat) (Set.hasMem.{0} Nat) n s) (fun (H : Membership.Mem.{0, 0} Nat (Set.{0} Nat) (Set.hasMem.{0} Nat) n s) => And (LT.lt.{0} Nat Nat.hasLt m n) (Nat.ModEq k m n)))))))
-but is expected to have type
-  forall {s : Set.{0} Nat}, (Set.Infinite.{0} Nat s) -> (forall {k : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) k) -> (Exists.{1} Nat (fun (m : Nat) => And (Membership.mem.{0, 0} Nat (Set.{0} Nat) (Set.instMembershipSet.{0} Nat) m s) (Exists.{1} Nat (fun (n : Nat) => And (Membership.mem.{0, 0} Nat (Set.{0} Nat) (Set.instMembershipSet.{0} Nat) n s) (And (LT.lt.{0} Nat instLTNat m n) (Nat.ModEq k m n)))))))
-Case conversion may be inaccurate. Consider using '#align nat.exists_lt_modeq_of_infinite Nat.exists_lt_modEq_of_infiniteₓ'. -/
 /-- If `s` is an infinite set of natural numbers and `k > 0`, then `s` contains two elements `m < n`
 that are equal mod `k`. -/
 theorem exists_lt_modEq_of_infinite {s : Set ℕ} (hs : s.Infinite) {k : ℕ} (hk : 0 < k) :
Diff
@@ -119,7 +119,7 @@ variable [LinearOrderedCancelAddCommMonoid M]
 
 /- warning: finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum -> Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sumₓ'. -/
@@ -134,7 +134,7 @@ theorem exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (hf : ∀ a ∈ s, f a 
 
 /- warning: finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul -> Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmulₓ'. -/
@@ -149,7 +149,7 @@ theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a 
 
 /- warning: finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum -> Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))))) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sumₓ'. -/
@@ -172,7 +172,7 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 
 /- warning: finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul -> Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmulₓ'. -/
@@ -195,7 +195,7 @@ theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
 
 /- warning: finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum -> Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sumₓ'. -/
@@ -210,7 +210,7 @@ theorem exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (hf : ∀ a ∈ s, f a 
 
 /- warning: finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul -> Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmulₓ'. -/
@@ -225,7 +225,7 @@ theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a 
 
 /- warning: finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum -> Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sumₓ'. -/
@@ -248,7 +248,7 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 
 /- warning: finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul -> Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmulₓ'. -/
@@ -288,7 +288,7 @@ So, we prove four theorems: `finset.exists_lt_card_fiber_of_maps_to_of_mul_lt_ca
 
 /- warning: finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to -> Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_toₓ'. -/
@@ -321,7 +321,7 @@ theorem exists_lt_card_fiber_of_mul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a 
 
 /- warning: finset.exists_card_fiber_lt_of_card_lt_nsmul -> Finset.exists_card_fiber_lt_of_card_lt_nsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_card_fiber_lt_of_card_lt_nsmul Finset.exists_card_fiber_lt_of_card_lt_nsmulₓ'. -/
@@ -356,7 +356,7 @@ theorem exists_card_fiber_lt_of_card_lt_mul (hn : s.card < t.card * n) :
 
 /- warning: finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to -> Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (forall (a : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a s) -> (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) (f a) t)) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_toₓ'. -/
@@ -388,7 +388,7 @@ theorem exists_le_card_fiber_of_mul_le_card_of_maps_to (hf : ∀ a ∈ s, f a 
 
 /- warning: finset.exists_card_fiber_le_of_card_le_nsmul -> Finset.exists_card_fiber_le_of_card_le_nsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α s)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => Exists.{0} (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) (fun (H : Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) y t) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {b : M} [_inst_2 : LinearOrderedCommSemiring.{u3} M], (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α s)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_2)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s))) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_card_fiber_le_of_card_le_nsmul Finset.exists_card_fiber_le_of_card_le_nsmulₓ'. -/
@@ -440,7 +440,12 @@ between `fintype`s and `s = univ`, `t = univ`. In this case the assumption `∀
 holds, so we have four theorems instead of eight. -/
 
 
-#print Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum /-
+/- warning: fintype.exists_lt_sum_fiber_of_nsmul_lt_sum -> Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_lt_sum_fiber_of_nsmul_lt_sum Fintype.exists_lt_sum_fiber_of_nsmul_lt_sumₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it greater than `b` provided that
 the total number of pigeonholes times `b` is less than the total weight of all pigeons. -/
@@ -449,9 +454,13 @@ theorem exists_lt_sum_fiber_of_nsmul_lt_sum (hb : card β • b < ∑ x, w x) :
   let ⟨y, _, hy⟩ := exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (fun _ _ => mem_univ _) hb
   ⟨y, hy⟩
 #align fintype.exists_lt_sum_fiber_of_nsmul_lt_sum Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum
--/
 
-#print Fintype.exists_le_sum_fiber_of_nsmul_le_sum /-
+/- warning: fintype.exists_le_sum_fiber_of_nsmul_le_sum -> Fintype.exists_le_sum_fiber_of_nsmul_le_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x))))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_le_sum_fiber_of_nsmul_le_sum Fintype.exists_le_sum_fiber_of_nsmul_le_sumₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it greater than or equal to `b`
 provided that the total number of pigeonholes times `b` is less than or equal to the total weight of
@@ -462,9 +471,13 @@ theorem exists_le_sum_fiber_of_nsmul_le_sum [Nonempty β] (hb : card β • b 
     exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (fun _ _ => mem_univ _) univ_nonempty hb
   ⟨y, hy⟩
 #align fintype.exists_le_sum_fiber_of_nsmul_le_sum Fintype.exists_le_sum_fiber_of_nsmul_le_sum
--/
 
-#print Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul /-
+/- warning: fintype.exists_sum_fiber_lt_of_sum_lt_nsmul -> Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than `b` provided that
 the total number of pigeonholes times `b` is greater than the total weight of all pigeons. -/
@@ -472,9 +485,13 @@ theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b)
     ∃ y, (∑ x in univ.filterₓ fun x => f x = y, w x) < b :=
   @exists_lt_sum_fiber_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul
--/
 
-#print Fintype.exists_sum_fiber_le_of_sum_le_nsmul /-
+/- warning: fintype.exists_sum_fiber_le_of_sum_le_nsmul -> Fintype.exists_sum_fiber_le_of_sum_le_nsmul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {w : α -> M} {b : M} [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.univ.{u1} α _inst_2) (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_4)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)) (fun (x : α) => w x)) b))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmulₓ'. -/
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than or equal to `b`
 provided that the total number of pigeonholes times `b` is greater than or equal to the total weight
@@ -483,13 +500,17 @@ theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : (∑ x, w x) ≤
     ∃ y, (∑ x in univ.filterₓ fun x => f x = y, w x) ≤ b :=
   @exists_le_sum_fiber_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmul
--/
 
 end
 
 variable [LinearOrderedCommSemiring M]
 
-#print Fintype.exists_lt_card_fiber_of_nsmul_lt_card /-
+/- warning: fintype.exists_lt_card_fiber_of_nsmul_lt_card -> Fintype.exists_lt_card_fiber_of_nsmul_lt_card is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_lt_card_fiber_of_nsmul_lt_card Fintype.exists_lt_card_fiber_of_nsmul_lt_cardₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes. There is a pigeonhole
 with at least as many pigeons as the ceiling of the average number of pigeons across all
 pigeonholes. -/
@@ -498,7 +519,6 @@ theorem exists_lt_card_fiber_of_nsmul_lt_card (hb : card β • b < card α) :
   let ⟨y, _, h⟩ := exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (fun _ _ => mem_univ _) hb
   ⟨y, h⟩
 #align fintype.exists_lt_card_fiber_of_nsmul_lt_card Fintype.exists_lt_card_fiber_of_nsmul_lt_card
--/
 
 #print Fintype.exists_lt_card_fiber_of_mul_lt_card /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.
@@ -515,7 +535,12 @@ theorem exists_lt_card_fiber_of_mul_lt_card (hn : card β * n < card α) :
 #align fintype.exists_lt_card_fiber_of_mul_lt_card Fintype.exists_lt_card_fiber_of_mul_lt_card
 -/
 
-#print Fintype.exists_card_fiber_lt_of_card_lt_nsmul /-
+/- warning: fintype.exists_card_fiber_lt_of_card_lt_nsmul -> Fintype.exists_card_fiber_lt_of_card_lt_nsmul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toHasLt.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M], (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_card_fiber_lt_of_card_lt_nsmul Fintype.exists_card_fiber_lt_of_card_lt_nsmulₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes. There is a pigeonhole
 with at most as many pigeons as the floor of the average number of pigeons across all pigeonholes.
 -/
@@ -524,7 +549,6 @@ theorem exists_card_fiber_lt_of_card_lt_nsmul (hb : ↑(card α) < card β • b
   let ⟨y, _, h⟩ := exists_card_fiber_lt_of_card_lt_nsmul hb
   ⟨y, h⟩
 #align fintype.exists_card_fiber_lt_of_card_lt_nsmul Fintype.exists_card_fiber_lt_of_card_lt_nsmul
--/
 
 #print Fintype.exists_card_fiber_lt_of_card_lt_mul /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.
@@ -541,7 +565,12 @@ theorem exists_card_fiber_lt_of_card_lt_mul (hn : card α < card β * n) :
 #align fintype.exists_card_fiber_lt_of_card_lt_mul Fintype.exists_card_fiber_lt_of_card_lt_mul
 -/
 
-#print Fintype.exists_le_card_fiber_of_nsmul_le_card /-
+/- warning: fintype.exists_le_card_fiber_of_nsmul_le_card -> Fintype.exists_le_card_fiber_of_nsmul_le_card is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) b ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2))) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) b (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_le_card_fiber_of_nsmul_le_card Fintype.exists_le_card_fiber_of_nsmul_le_cardₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
 between finite types `α` and `β` and a number `b` such that `card β • b ≤ card α`, there exists an
 element `y : β` such that its preimage has at least `b` elements.
@@ -552,7 +581,6 @@ theorem exists_le_card_fiber_of_nsmul_le_card [Nonempty β] (hb : card β • b
     exists_le_card_fiber_of_nsmul_le_card_of_maps_to (fun _ _ => mem_univ _) univ_nonempty hb
   ⟨y, h⟩
 #align fintype.exists_le_card_fiber_of_nsmul_le_card Fintype.exists_le_card_fiber_of_nsmul_le_card
--/
 
 #print Fintype.exists_le_card_fiber_of_mul_le_card /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
@@ -565,7 +593,12 @@ theorem exists_le_card_fiber_of_mul_le_card [Nonempty β] (hn : card β * n ≤
 #align fintype.exists_le_card_fiber_of_mul_le_card Fintype.exists_le_card_fiber_of_mul_le_card
 -/
 
-#print Fintype.exists_card_fiber_le_of_card_le_nsmul /-
+/- warning: fintype.exists_card_fiber_le_of_card_le_nsmul -> Fintype.exists_card_fiber_le_of_card_le_nsmul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Fintype.card.{u1} α _inst_2)) (SMul.smul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toHasLe.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))) ((fun (a : Type) (b : Type.{u3}) [self : HasLiftT.{1, succ u3} a b] => self.0) Nat M (HasLiftT.mk.{1, succ u3} Nat M (CoeTCₓ.coe.{1, succ u3} Nat M (Nat.castCoe.{u3} M (AddMonoidWithOne.toNatCast.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))))))))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] [_inst_2 : Fintype.{u1} α] [_inst_3 : Fintype.{u2} β] (f : α -> β) {b : M} [_inst_4 : LinearOrderedCommSemiring.{u3} M] [_inst_5 : Nonempty.{succ u2} β], (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Fintype.card.{u1} α _inst_2)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddMonoidWithOne.toAddMonoid.{u3} M (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} M (NonAssocSemiring.toAddCommMonoidWithOne.{u3} M (Semiring.toNonAssocSemiring.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))))))) (Fintype.card.{u2} β _inst_3) b)) -> (Exists.{succ u2} β (fun (y : β) => LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (StrictOrderedSemiring.toPartialOrder.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4))))) (Nat.cast.{u3} M (Semiring.toNatCast.{u3} M (StrictOrderedSemiring.toSemiring.{u3} M (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} M (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} M _inst_4)))) (Finset.card.{u1} α (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) (Finset.univ.{u1} α _inst_2)))) b))
+Case conversion may be inaccurate. Consider using '#align fintype.exists_card_fiber_le_of_card_le_nsmul Fintype.exists_card_fiber_le_of_card_le_nsmulₓ'. -/
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
 between finite types `α` and `β` and a number `b` such that `card α ≤ card β • b`, there exists an
 element `y : β` such that its preimage has at most `b` elements.
@@ -575,7 +608,6 @@ theorem exists_card_fiber_le_of_card_le_nsmul [Nonempty β] (hb : ↑(card α) 
   let ⟨y, _, h⟩ := exists_card_fiber_le_of_card_le_nsmul univ_nonempty hb
   ⟨y, h⟩
 #align fintype.exists_card_fiber_le_of_card_le_nsmul Fintype.exists_card_fiber_le_of_card_le_nsmul
--/
 
 #print Fintype.exists_card_fiber_le_of_card_le_mul /-
 /-- The strong pigeonhole principle for finitely many pigeons and pigeonholes.  Given a function `f`
Diff
@@ -153,7 +153,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sumₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is greater than `n • b`, they are sorted into some
 pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons there is nonpositive,
@@ -176,7 +176,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LT.lt.{u3} M (Preorder.toLT.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmulₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
 if the total weight of a finite set of pigeons is less than `n • b`, they are sorted into some
 pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons there is nonnegative,
@@ -229,7 +229,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x))) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) b (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))))
 Case conversion may be inaccurate. Consider using '#align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sumₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is greater than or equal to `n • b`, they
 are sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weight of the
@@ -252,7 +252,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} β] {s : Finset.{u1} α} {t : Finset.{u2} β} {f : α -> β} {w : α -> M} {b : M} [_inst_2 : LinearOrderedCancelAddCommMonoid.{u3} M], (forall (y : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t)) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddRightCancelMonoid.toZero.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)))) -> (Finset.Nonempty.{u2} β t) -> (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) s (fun (x : α) => w x)) (HSMul.hSMul.{0, u3, u3} Nat M M (instHSMul.{0, u3} Nat M (AddMonoid.SMul.{u3} M (AddRightCancelMonoid.toAddMonoid.{u3} M (AddCancelMonoid.toAddRightCancelMonoid.{u3} M (AddCancelCommMonoid.toAddCancelMonoid.{u3} M (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2))))))) (Finset.card.{u2} β t) b)) -> (Exists.{succ u2} β (fun (y : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) y t) (LE.le.{u3} M (Preorder.toLE.{u3} M (PartialOrder.toPreorder.{u3} M (OrderedCancelAddCommMonoid.toPartialOrder.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)))) (Finset.sum.{u3, u1} M α (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} M (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} M _inst_2)) (Finset.filter.{u1} α (fun (x : α) => Eq.{succ u2} β (f x) y) (fun (a : α) => _inst_1 (f a) y) s) (fun (x : α) => w x)) b)))
 Case conversion may be inaccurate. Consider using '#align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmulₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y «expr ∉ » t) -/
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
 version: if the total weight of a finite set of pigeons is less than or equal to `n • b`, they are
 sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weight of the pigeons

Changes in mathlib4

mathlib3
mathlib4
chore: split Algebra.Module.Basic (#12501)

Similar to #12486, which did this for Algebra.Algebra.Basic.

Splits Algebra.Module.Defs off Algebra.Module.Basic. Most imports only need the Defs file, which has significantly smaller imports. The remaining Algebra.Module.Basic is now a grab-bag of unrelated results, and should probably be split further or rehomed.

This is mostly motivated by the wasted effort during minimization upon encountering Algebra.Module.Basic.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Kyle Miller. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Yury Kudryashov
 -/
-import Mathlib.Algebra.Module.Basic
 import Mathlib.Algebra.Module.BigOperators
+import Mathlib.Algebra.Module.Defs
 import Mathlib.Algebra.Order.BigOperators.Group.Finset
 import Mathlib.Data.Nat.ModEq
 import Mathlib.Data.Set.Finite
chore: Sort big operator order lemmas (#11750)

Take the content of

  • some of Algebra.BigOperators.List.Basic
  • some of Algebra.BigOperators.List.Lemmas
  • some of Algebra.BigOperators.Multiset.Basic
  • some of Algebra.BigOperators.Multiset.Lemmas
  • Algebra.BigOperators.Multiset.Order
  • Algebra.BigOperators.Order

and sort it into six files:

Here are the design decisions at play:

  • Pure algebra and big operators algebra shouldn't import (algebraic) order theory. This PR makes that better, but not perfect because we still import Data.Nat.Order.Basic in a few List files.
  • It's Algebra.Order.BigOperators instead of Algebra.BigOperators.Order because algebraic order theory is more of a theory than big operators algebra. Another reason is that algebraic order theory is the only way to mix pure order and pure algebra, while there are more ways to mix pure finiteness and pure algebra than just big operators.
  • There are separate files for group/monoid lemmas vs ring lemmas. Groups/monoids are the natural setup for big operators, so their lemmas shouldn't be mixed with ring lemmas that involves both addition and multiplication. As a result, everything under Algebra.Order.BigOperators.Group should be additivisable (except a few Nat- or Int-specific lemmas). In contrast, things under Algebra.Order.BigOperators.Ring are more prone to having heavy imports.
  • Lemmas are separated according to List vs Multiset vs Finset. This is not strictly necessary, and can be relaxed in cases where there aren't that many lemmas to be had. As an example, I could split out the AbsoluteValue lemmas from Algebra.Order.BigOperators.Ring.Finset to a file Algebra.Order.BigOperators.Ring.AbsoluteValue and it could stay this way until too many lemmas are in this file (or a split is needed for import reasons), in which case we would need files Algebra.Order.BigOperators.Ring.AbsoluteValue.Finset, Algebra.Order.BigOperators.Ring.AbsoluteValue.Multiset, etc...
  • Finsupp big operator and finprod/finsum order lemmas also belong in Algebra.Order.BigOperators. I haven't done so in this PR because the diff is big enough like that.
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2020 Kyle Miller. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Yury Kudryashov
 -/
-import Mathlib.Data.Nat.ModEq
-import Mathlib.Data.Set.Finite
-import Mathlib.Algebra.BigOperators.Order
 import Mathlib.Algebra.Module.Basic
 import Mathlib.Algebra.Module.BigOperators
+import Mathlib.Algebra.Order.BigOperators.Group.Finset
+import Mathlib.Data.Nat.ModEq
+import Mathlib.Data.Set.Finite
 
 #align_import combinatorics.pigeonhole from "leanprover-community/mathlib"@"d6fad0e5bf2d6f48da9175d25c3dc5706b3834ce"
 
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -461,7 +461,7 @@ open Set
 that are equal mod `k`. -/
 theorem exists_lt_modEq_of_infinite {s : Set ℕ} (hs : s.Infinite) {k : ℕ} (hk : 0 < k) :
     ∃ m ∈ s, ∃ n ∈ s, m < n ∧ m ≡ n [MOD k] :=
-  (hs.exists_lt_map_eq_of_mapsTo $ fun n _ => show n % k ∈ Iio k from Nat.mod_lt n hk) <|
+  (hs.exists_lt_map_eq_of_mapsTo fun n _ => show n % k ∈ Iio k from Nat.mod_lt n hk) <|
     finite_lt_nat k
 #align nat.exists_lt_modeq_of_infinite Nat.exists_lt_modEq_of_infinite
 
chore(*): use ∃ x ∈ s, _ instead of ∃ (x) (_ : x ∈ s), _ (#9184)

Search for [∀∃].*(_ and manually replace some occurrences with more readable versions. In case of , the new expressions are defeq to the old ones. In case of , they differ by exists_prop.

In some rare cases, golf proofs that needed fixing.

Diff
@@ -134,7 +134,7 @@ pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons the
 then for at least one of these `n` pigeonholes, the total weight of the pigeons in this pigeonhole
 is greater than `b`. -/
 theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
-    (ht : ∀ (y) (_ : y ∉ t), ∑ x in s.filter fun x => f x = y, w x ≤ 0)
+    (ht : ∀ y ∉ t, ∑ x in s.filter fun x => f x = y, w x ≤ 0)
     (hb : t.card • b < ∑ x in s, w x) : ∃ y ∈ t, b < ∑ x in s.filter fun x => f x = y, w x :=
   exists_lt_of_sum_lt <|
     calc
@@ -149,7 +149,7 @@ pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons the
 then for at least one of these `n` pigeonholes, the total weight of the pigeons in this pigeonhole
 is less than `b`. -/
 theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
-    (ht : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x)
+    (ht : ∀ y ∉ t, (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x)
     (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x < b :=
   exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum (M := Mᵒᵈ) ht hb
 #align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
@@ -183,7 +183,7 @@ are sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total
 pigeons there is nonpositive, then for at least one of these `n` pigeonholes, the total weight of
 the pigeons in this pigeonhole is greater than or equal to `b`. -/
 theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
-    (hf : ∀ (y) (_ : y ∉ t), ∑ x in s.filter fun x => f x = y, w x ≤ 0) (ht : t.Nonempty)
+    (hf : ∀ y ∉ t, ∑ x in s.filter fun x => f x = y, w x ≤ 0) (ht : t.Nonempty)
     (hb : t.card • b ≤ ∑ x in s, w x) : ∃ y ∈ t, b ≤ ∑ x in s.filter fun x => f x = y, w x :=
   exists_le_of_sum_le ht <|
     calc
@@ -198,7 +198,7 @@ sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total weig
 there is nonnegative, then for at least one of these `n` pigeonholes, the total weight of the
 pigeons in this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
-    (hf : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x) (ht : t.Nonempty)
+    (hf : ∀ y ∉ t, (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x) (ht : t.Nonempty)
     (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x ≤ b :=
   exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum (M := Mᵒᵈ) hf ht hb
 #align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
refactor: replace some [@foo](https://github.com/foo) _ _ _ _ _ ... by named arguments (#8702)

Using Lean4's named arguments, we manage to remove a few hard-to-read explicit function calls [@foo](https://github.com/foo) _ _ _ _ _ ... which used to be necessary in Lean3.

Occasionally, this results in slightly longer code. The benefit of named arguments is readability, as well as to reduce the brittleness of the code when the argument order is changed.

Co-authored-by: Michael Rothgang <rothgami@math.hu-berlin.de>

Diff
@@ -125,7 +125,7 @@ pigeonholes, then for some pigeonhole, the total weight of the pigeons in this p
 than `b`. -/
 theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a ∈ t)
     (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x < b :=
-  @exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf hb
+  exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (M := Mᵒᵈ) hf hb
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
@@ -151,7 +151,7 @@ is less than `b`. -/
 theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
     (ht : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x)
     (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x < b :=
-  @exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ ht hb
+  exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum (M := Mᵒᵈ) ht hb
 #align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
 
 /-!
@@ -174,7 +174,7 @@ are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight
 this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
     (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x ≤ b :=
-  @exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
+  exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (M := Mᵒᵈ) hf ht hb
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
@@ -200,7 +200,7 @@ pigeons in this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
     (hf : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x) (ht : t.Nonempty)
     (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x ≤ b :=
-  @exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
+  exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum (M := Mᵒᵈ) hf ht hb
 #align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
 
 end
@@ -352,7 +352,7 @@ version: there is a pigeonhole with the total weight of pigeons in it less than
 the total number of pigeonholes times `b` is greater than the total weight of all pigeons. -/
 theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : ∑ x, w x < card β • b) :
     ∃ y, ∑ x in univ.filter fun x => f x = y, w x < b :=
-  @exists_lt_sum_fiber_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hb
+  exists_lt_sum_fiber_of_nsmul_lt_sum (M := Mᵒᵈ) _ hb
 #align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul
 
 /-- The pigeonhole principle for finitely many pigeons of different weights, non-strict inequality
@@ -361,7 +361,7 @@ provided that the total number of pigeonholes times `b` is greater than or equal
 of all pigeons. -/
 theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : ∑ x, w x ≤ card β • b) :
     ∃ y, ∑ x in univ.filter fun x => f x = y, w x ≤ b :=
-  @exists_le_sum_fiber_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ _ hb
+  exists_le_sum_fiber_of_nsmul_le_sum (M := Mᵒᵈ) _ hb
 #align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmul
 
 end
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,11 +2,6 @@
 Copyright (c) 2020 Kyle Miller. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Yury Kudryashov
-
-! This file was ported from Lean 3 source module combinatorics.pigeonhole
-! leanprover-community/mathlib commit d6fad0e5bf2d6f48da9175d25c3dc5706b3834ce
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Nat.ModEq
 import Mathlib.Data.Set.Finite
@@ -14,6 +9,8 @@ import Mathlib.Algebra.BigOperators.Order
 import Mathlib.Algebra.Module.Basic
 import Mathlib.Algebra.Module.BigOperators
 
+#align_import combinatorics.pigeonhole from "leanprover-community/mathlib"@"d6fad0e5bf2d6f48da9175d25c3dc5706b3834ce"
+
 /-!
 # Pigeonhole principles
 
fix: ∑' precedence (#5615)
  • Also remove most superfluous parentheses around big operators (, and variants).
  • roughly the used regex: ([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤]) replaced by $1 $2 $3
Diff
@@ -127,7 +127,7 @@ if the total weight of a finite set of pigeons is less than `n • b`, and they
 pigeonholes, then for some pigeonhole, the total weight of the pigeons in this pigeonhole is less
 than `b`. -/
 theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a ∈ t)
-    (hb : (∑ x in s, w x) < t.card • b) : ∃ y ∈ t, (∑ x in s.filter fun x => f x = y, w x) < b :=
+    (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf hb
 #align finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
 
@@ -137,11 +137,11 @@ pigeonholes, and for all but `n` pigeonholes the total weight of the pigeons the
 then for at least one of these `n` pigeonholes, the total weight of the pigeons in this pigeonhole
 is greater than `b`. -/
 theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
-    (ht : ∀ (y) (_ : y ∉ t), (∑ x in s.filter fun x => f x = y, w x) ≤ 0)
+    (ht : ∀ (y) (_ : y ∉ t), ∑ x in s.filter fun x => f x = y, w x ≤ 0)
     (hb : t.card • b < ∑ x in s, w x) : ∃ y ∈ t, b < ∑ x in s.filter fun x => f x = y, w x :=
   exists_lt_of_sum_lt <|
     calc
-      (∑ _y in t, b) < ∑ x in s, w x := by simpa
+      ∑ _y in t, b < ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filter fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos ht
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
@@ -153,7 +153,7 @@ then for at least one of these `n` pigeonholes, the total weight of the pigeons
 is less than `b`. -/
 theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
     (ht : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x)
-    (hb : (∑ x in s, w x) < t.card • b) : ∃ y ∈ t, (∑ x in s.filter fun x => f x = y, w x) < b :=
+    (hb : ∑ x in s, w x < t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ ht hb
 #align finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
 
@@ -176,7 +176,7 @@ version: if the total weight of a finite set of pigeons is less than or equal to
 are sorted into `n > 0` pigeonholes, then for some pigeonhole, the total weight of the pigeons in
 this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
-    (hb : (∑ x in s, w x) ≤ t.card • b) : ∃ y ∈ t, (∑ x in s.filter fun x => f x = y, w x) ≤ b :=
+    (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
 
@@ -186,11 +186,11 @@ are sorted into some pigeonholes, and for all but `n > 0` pigeonholes the total
 pigeons there is nonpositive, then for at least one of these `n` pigeonholes, the total weight of
 the pigeons in this pigeonhole is greater than or equal to `b`. -/
 theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
-    (hf : ∀ (y) (_ : y ∉ t), (∑ x in s.filter fun x => f x = y, w x) ≤ 0) (ht : t.Nonempty)
+    (hf : ∀ (y) (_ : y ∉ t), ∑ x in s.filter fun x => f x = y, w x ≤ 0) (ht : t.Nonempty)
     (hb : t.card • b ≤ ∑ x in s, w x) : ∃ y ∈ t, b ≤ ∑ x in s.filter fun x => f x = y, w x :=
   exists_le_of_sum_le ht <|
     calc
-      (∑ _y in t, b) ≤ ∑ x in s, w x := by simpa
+      ∑ _y in t, b ≤ ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filter fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos hf
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
@@ -202,7 +202,7 @@ there is nonnegative, then for at least one of these `n` pigeonholes, the total
 pigeons in this pigeonhole is less than or equal to `b`. -/
 theorem exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
     (hf : ∀ (y) (_ : y ∉ t), (0 : M) ≤ ∑ x in s.filter fun x => f x = y, w x) (ht : t.Nonempty)
-    (hb : (∑ x in s, w x) ≤ t.card • b) : ∃ y ∈ t, (∑ x in s.filter fun x => f x = y, w x) ≤ b :=
+    (hb : ∑ x in s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x in s.filter fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ hf ht hb
 #align finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
 
@@ -353,8 +353,8 @@ theorem exists_le_sum_fiber_of_nsmul_le_sum [Nonempty β] (hb : card β • b 
 /-- The pigeonhole principle for finitely many pigeons of different weights, strict inequality
 version: there is a pigeonhole with the total weight of pigeons in it less than `b` provided that
 the total number of pigeonholes times `b` is greater than the total weight of all pigeons. -/
-theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b) :
-    ∃ y, (∑ x in univ.filter fun x => f x = y, w x) < b :=
+theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : ∑ x, w x < card β • b) :
+    ∃ y, ∑ x in univ.filter fun x => f x = y, w x < b :=
   @exists_lt_sum_fiber_of_nsmul_lt_sum α β Mᵒᵈ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul
 
@@ -362,8 +362,8 @@ theorem exists_sum_fiber_lt_of_sum_lt_nsmul (hb : (∑ x, w x) < card β • b)
 version: there is a pigeonhole with the total weight of pigeons in it less than or equal to `b`
 provided that the total number of pigeonholes times `b` is greater than or equal to the total weight
 of all pigeons. -/
-theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : (∑ x, w x) ≤ card β • b) :
-    ∃ y, (∑ x in univ.filter fun x => f x = y, w x) ≤ b :=
+theorem exists_sum_fiber_le_of_sum_le_nsmul [Nonempty β] (hb : ∑ x, w x ≤ card β • b) :
+    ∃ y, ∑ x in univ.filter fun x => f x = y, w x ≤ b :=
   @exists_le_sum_fiber_of_nsmul_le_sum α β Mᵒᵈ _ _ _ _ _ _ _ _ hb
 #align fintype.exists_sum_fiber_le_of_sum_le_nsmul Fintype.exists_sum_fiber_le_of_sum_le_nsmul
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -232,7 +232,7 @@ So, we prove four theorems: `Finset.exists_lt_card_fiber_of_maps_to_of_mul_lt_ca
 at least as many pigeons as the ceiling of the average number of pigeons across all pigeonholes. -/
 theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
     (ht : t.card • b < s.card) : ∃ y ∈ t, b < (s.filter fun x => f x = y).card := by
-  simp_rw [cast_card] at ht⊢
+  simp_rw [cast_card] at ht ⊢
   exact exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum hf ht
 #align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to
 
@@ -252,7 +252,7 @@ theorem exists_lt_card_fiber_of_mul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a 
 at most as many pigeons as the floor of the average number of pigeons across all pigeonholes. -/
 theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
     ∃ y ∈ t, ↑(s.filter fun x => f x = y).card < b := by
-  simp_rw [cast_card] at ht⊢
+  simp_rw [cast_card] at ht ⊢
   exact
     exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht
@@ -276,7 +276,7 @@ that its preimage in `s` has at least `b` elements.
 See also `Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to` for a stronger statement. -/
 theorem exists_le_card_fiber_of_nsmul_le_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
     (hb : t.card • b ≤ s.card) : ∃ y ∈ t, b ≤ (s.filter fun x => f x = y).card := by
-  simp_rw [cast_card] at hb⊢
+  simp_rw [cast_card] at hb ⊢
   exact exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum hf ht hb
 #align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to
 
@@ -295,7 +295,7 @@ that its preimage in `s` has no more than `b` elements.
 See also `Finset.exists_card_fiber_lt_of_card_lt_nsmul` for a stronger statement. -/
 theorem exists_card_fiber_le_of_card_le_nsmul (ht : t.Nonempty) (hb : ↑s.card ≤ t.card • b) :
     ∃ y ∈ t, ↑(s.filter fun x => f x = y).card ≤ b := by
-  simp_rw [cast_card] at hb⊢
+  simp_rw [cast_card] at hb ⊢
   refine'
     exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
       (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht hb
chore: convert lambda in docs to fun (#5045)

Found with git grep -n "λ [a-zA-Z_ ]*,"

Diff
@@ -46,7 +46,7 @@ The versions vary by:
 * in case when we count pigeons by some weight function `w` and consider a function `f` between
   `Finset`s `s` and `t`, we can either assume that each pigeon is in one of the pigeonholes
   (`∀ x ∈ s, f x ∈ t`), or assume that for `y ∉ t`, the total weight of the pigeons in this
-  pigeonhole `∑ x in s.filter (λ x, f x = y), w x` is nonpositive or nonnegative depending on
+  pigeonhole `∑ x in s.filter (fun x ↦ f x = y), w x` is nonpositive or nonnegative depending on
   the inequality we are proving.
 
 Lemma names follow `mathlib` convention (e.g.,
@@ -97,7 +97,7 @@ There are a few bits we can change in this theorem:
 
 * reverse all inequalities, with obvious adjustments to the name;
 * replace the assumption `∀ a ∈ s, f a ∈ t` with
-  `∀ y ∉ t, (∑ x in s.filter (λ x, f x = y), w x) ≤ 0`,
+  `∀ y ∉ t, (∑ x in s.filter (fun x ↦ f x = y), w x) ≤ 0`,
   and replace `of_maps_to` with `of_sum_fiber_nonpos` in the name;
 * use non-strict inequalities assuming `t` is nonempty.
 
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -57,8 +57,8 @@ docstrings instead of the names.
 
 * `Ordinal.infinite_pigeonhole`: pigeonhole principle for cardinals, formulated using cofinality;
 
-* `measure_theory.exists_nonempty_inter_of_measure_univ_lt_tsum_measure`,
-  `measure_theory.exists_nonempty_inter_of_measure_univ_lt_sum_measure`: pigeonhole principle in a
+* `MeasureTheory.exists_nonempty_inter_of_measure_univ_lt_tsum_measure`,
+  `MeasureTheory.exists_nonempty_inter_of_measure_univ_lt_sum_measure`: pigeonhole principle in a
   measure space.
 
 ## Tags
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -144,7 +144,6 @@ theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
       (∑ _y in t, b) < ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filter fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos ht
-
 #align finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
 
 /-- The pigeonhole principle for finitely many pigeons counted by weight, strict inequality version:
@@ -194,7 +193,6 @@ theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
       (∑ _y in t, b) ≤ ∑ x in s, w x := by simpa
       _ ≤ ∑ y in t, ∑ x in s.filter fun x => f x = y, w x :=
         sum_le_sum_fiberwise_of_sum_fiber_nonpos hf
-
 #align finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
 
 /-- The pigeonhole principle for finitely many pigeons counted by weight, non-strict inequality
chore: tidy various files (#2321)
Diff
@@ -104,9 +104,6 @@ There are a few bits we can change in this theorem:
 We can do all these variations independently, so we have eight versions of the theorem.
 -/
 
--- porting note: several computations in the file seem to be timing out
-set_option maxHeartbeats 1000000
-
 section
 
 variable [LinearOrderedCancelAddCommMonoid M]
@@ -236,8 +233,7 @@ So, we prove four theorems: `Finset.exists_lt_card_fiber_of_maps_to_of_mul_lt_ca
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at least as many pigeons as the ceiling of the average number of pigeons across all pigeonholes. -/
 theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
-    (ht : t.card • b < s.card) : ∃ y ∈ t, b < (s.filter fun x => f x = y).card :=
-  by
+    (ht : t.card • b < s.card) : ∃ y ∈ t, b < (s.filter fun x => f x = y).card := by
   simp_rw [cast_card] at ht⊢
   exact exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum hf ht
 #align finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to
@@ -257,8 +253,7 @@ theorem exists_lt_card_fiber_of_mul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a 
 /-- The pigeonhole principle for finitely many pigeons counted by heads: there is a pigeonhole with
 at most as many pigeons as the floor of the average number of pigeons across all pigeonholes. -/
 theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
-    ∃ y ∈ t, ↑(s.filter fun x => f x = y).card < b :=
-  by
+    ∃ y ∈ t, ↑(s.filter fun x => f x = y).card < b := by
   simp_rw [cast_card] at ht⊢
   exact
     exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
@@ -282,15 +277,14 @@ finite sets `s` and `t` and a number `b` such that `card t • b ≤ card s`, th
 that its preimage in `s` has at least `b` elements.
 See also `Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to` for a stronger statement. -/
 theorem exists_le_card_fiber_of_nsmul_le_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
-    (hb : t.card • b ≤ s.card) : ∃ y ∈ t, b ≤ (s.filter fun x => f x = y).card :=
-  by
+    (hb : t.card • b ≤ s.card) : ∃ y ∈ t, b ≤ (s.filter fun x => f x = y).card := by
   simp_rw [cast_card] at hb⊢
   exact exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum hf ht hb
 #align finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to
 
 /-- The pigeonhole principle for finitely many pigeons counted by heads: given a function between
-finite sets `s` and `t` and a natural number `b` such that `card t * n ≤ card s`, there exists `y ∈
-t` such that its preimage in `s` has at least `n` elements. See also
+finite sets `s` and `t` and a natural number `b` such that `card t * n ≤ card s`, there exists
+`y ∈ t` such that its preimage in `s` has at least `n` elements. See also
 `Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to` for a stronger statement. -/
 theorem exists_le_card_fiber_of_mul_le_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
     (hn : t.card * n ≤ s.card) : ∃ y ∈ t, n ≤ (s.filter fun x => f x = y).card :=
@@ -302,8 +296,7 @@ finite sets `s` and `t`, and a number `b` such that `card s ≤ card t • b`, t
 that its preimage in `s` has no more than `b` elements.
 See also `Finset.exists_card_fiber_lt_of_card_lt_nsmul` for a stronger statement. -/
 theorem exists_card_fiber_le_of_card_le_nsmul (ht : t.Nonempty) (hb : ↑s.card ≤ t.card • b) :
-    ∃ y ∈ t, ↑(s.filter fun x => f x = y).card ≤ b :=
-  by
+    ∃ y ∈ t, ↑(s.filter fun x => f x = y).card ≤ b := by
   simp_rw [cast_card] at hb⊢
   refine'
     exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
chore: scoped BigOperators notation (#1952)
Diff
@@ -73,8 +73,7 @@ variable {α : Type u} {β : Type v} {M : Type w} [DecidableEq β]
 
 open Nat
 
--- porting note: The `BigOperators` notation is now global
--- open BigOperators
+open BigOperators
 
 namespace Finset
 
feat: Port Combinatorics.Pigeonhole (#1758)

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 7 + 245

246 files ported (97.2%)
105111 lines ported (97.2%)
Show graph

The unported dependencies are