algebra.ring.comp_typeclassesMathlib.Algebra.Ring.CompTypeclasses

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -208,7 +208,7 @@ theorem comp [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] [RingHomSurjective 
   {
     is_surjective := by
       have := σ₂₃.is_surjective.comp σ₁₂.is_surjective
-      rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this  }
+      rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this }
 #align ring_hom_surjective.comp RingHomSurjective.comp
 -/
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Frédéric Dupuis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Frédéric Dupuis, Heather Macbeth
 -/
-import Mathbin.Algebra.Ring.Equiv
+import Algebra.Ring.Equiv
 
 #align_import algebra.ring.comp_typeclasses from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2021 Frédéric Dupuis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Frédéric Dupuis, Heather Macbeth
-
-! This file was ported from Lean 3 source module algebra.ring.comp_typeclasses
-! leanprover-community/mathlib commit c3291da49cfa65f0d43b094750541c0731edc932
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Ring.Equiv
 
+#align_import algebra.ring.comp_typeclasses from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
+
 /-!
 # Propositional typeclasses on several ring homs
 
Diff
@@ -66,10 +66,12 @@ variable {σ₁₂ : R₁ →+* R₂} {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R
 
 namespace RingHomCompTriple
 
+#print RingHomCompTriple.comp_apply /-
 @[simp]
 theorem comp_apply [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] {x : R₁} : σ₂₃ (σ₁₂ x) = σ₁₃ x :=
   RingHom.congr_fun comp_eq x
 #align ring_hom_comp_triple.comp_apply RingHomCompTriple.comp_apply
+-/
 
 end RingHomCompTriple
 
@@ -92,13 +94,17 @@ namespace RingHomInvPair
 
 variable [RingHomInvPair σ σ']
 
+#print RingHomInvPair.comp_apply_eq /-
 @[simp]
 theorem comp_apply_eq {x : R₁} : σ' (σ x) = x := by rw [← RingHom.comp_apply, comp_eq]; simp
 #align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eq
+-/
 
+#print RingHomInvPair.comp_apply_eq₂ /-
 @[simp]
 theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x := by rw [← RingHom.comp_apply, comp_eq₂]; simp
 #align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂
+-/
 
 #print RingHomInvPair.ids /-
 instance ids : RingHomInvPair (RingHom.id R₁) (RingHom.id R₁) :=
@@ -120,6 +126,7 @@ instance triples₂ {σ₂₁ : R₂ →+* R₁} [RingHomInvPair σ₁₂ σ₂
 #align ring_hom_inv_pair.triples₂ RingHomInvPair.triples₂
 -/
 
+#print RingHomInvPair.of_ringEquiv /-
 /-- Construct a `ring_hom_inv_pair` from both directions of a ring equiv.
 
 This is not an instance, as for equivalences that are involutions, a better instance
@@ -131,7 +138,9 @@ See note [reducible non-instances].
 theorem of_ringEquiv (e : R₁ ≃+* R₂) : RingHomInvPair (↑e : R₁ →+* R₂) ↑e.symm :=
   ⟨e.symm_toRingHom_comp_toRingHom, e.symm.symm_toRingHom_comp_toRingHom⟩
 #align ring_hom_inv_pair.of_ring_equiv RingHomInvPair.of_ringEquiv
+-/
 
+#print RingHomInvPair.symm /-
 /--
 Swap the direction of a `ring_hom_inv_pair`. This is not an instance as it would loop, and better
 instances are often available and may often be preferrable to using this one. Indeed, this
@@ -144,6 +153,7 @@ theorem symm (σ₁₂ : R₁ →+* R₂) (σ₂₁ : R₂ →+* R₁) [RingHomI
     RingHomInvPair σ₂₁ σ₁₂ :=
   ⟨RingHomInvPair.comp_eq₂, RingHomInvPair.comp_eq⟩
 #align ring_hom_inv_pair.symm RingHomInvPair.symm
+-/
 
 end RingHomInvPair
 
@@ -171,9 +181,11 @@ class RingHomSurjective (σ : R₁ →+* R₂) : Prop where
 #align ring_hom_surjective RingHomSurjective
 -/
 
+#print RingHom.surjective /-
 theorem RingHom.surjective (σ : R₁ →+* R₂) [t : RingHomSurjective σ] : Function.Surjective σ :=
   t.is_surjective
 #align ring_hom.is_surjective RingHom.surjective
+-/
 
 namespace RingHomSurjective
 
@@ -192,6 +204,7 @@ instance ids : RingHomSurjective (RingHom.id R₁) :=
 #align ring_hom_surjective.ids RingHomSurjective.ids
 -/
 
+#print RingHomSurjective.comp /-
 /-- This cannot be an instance as there is no way to infer `σ₁₂` and `σ₂₃`. -/
 theorem comp [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] [RingHomSurjective σ₁₂] [RingHomSurjective σ₂₃] :
     RingHomSurjective σ₁₃ :=
@@ -200,6 +213,7 @@ theorem comp [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] [RingHomSurjective 
       have := σ₂₃.is_surjective.comp σ₁₂.is_surjective
       rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this  }
 #align ring_hom_surjective.comp RingHomSurjective.comp
+-/
 
 end RingHomSurjective
 
Diff
@@ -55,7 +55,7 @@ variable [Semiring R₁] [Semiring R₂] [Semiring R₃]
 /-- Class that expresses the fact that three ring homomorphisms form a composition triple. This is
 used to handle composition of semilinear maps. -/
 class RingHomCompTriple (σ₁₂ : R₁ →+* R₂) (σ₂₃ : R₂ →+* R₃) (σ₁₃ : outParam (R₁ →+* R₃)) :
-  Prop where
+    Prop where
   comp_eq : σ₂₃.comp σ₁₂ = σ₁₃
 #align ring_hom_comp_triple RingHomCompTriple
 -/
@@ -198,7 +198,7 @@ theorem comp [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] [RingHomSurjective 
   {
     is_surjective := by
       have := σ₂₃.is_surjective.comp σ₁₂.is_surjective
-      rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this }
+      rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this  }
 #align ring_hom_surjective.comp RingHomSurjective.comp
 
 end RingHomSurjective
Diff
@@ -66,12 +66,6 @@ variable {σ₁₂ : R₁ →+* R₂} {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R
 
 namespace RingHomCompTriple
 
-/- warning: ring_hom_comp_triple.comp_apply -> RingHomCompTriple.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u3} R₃ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₂ -> R₃) (RingHom.hasCoeToFun.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₂₃ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ₁₂ x)) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₁ -> R₃) (RingHom.hasCoeToFun.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₁₃ x)
-but is expected to have type
-  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
-Case conversion may be inaccurate. Consider using '#align ring_hom_comp_triple.comp_apply RingHomCompTriple.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] {x : R₁} : σ₂₃ (σ₁₂ x) = σ₁₃ x :=
   RingHom.congr_fun comp_eq x
@@ -98,22 +92,10 @@ namespace RingHomInvPair
 
 variable [RingHomInvPair σ σ']
 
-/- warning: ring_hom_inv_pair.comp_apply_eq -> RingHomInvPair.comp_apply_eq is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u1} R₁ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ x)) x
-but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
-Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eqₓ'. -/
 @[simp]
 theorem comp_apply_eq {x : R₁} : σ' (σ x) = x := by rw [← RingHom.comp_apply, comp_eq]; simp
 #align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eq
 
-/- warning: ring_hom_inv_pair.comp_apply_eq₂ -> RingHomInvPair.comp_apply_eq₂ is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' x)) x
-but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
-Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂ₓ'. -/
 @[simp]
 theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x := by rw [← RingHom.comp_apply, comp_eq₂]; simp
 #align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂
@@ -138,9 +120,6 @@ instance triples₂ {σ₂₁ : R₂ →+* R₁} [RingHomInvPair σ₁₂ σ₂
 #align ring_hom_inv_pair.triples₂ RingHomInvPair.triples₂
 -/
 
-/- warning: ring_hom_inv_pair.of_ring_equiv -> RingHomInvPair.of_ringEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.of_ring_equiv RingHomInvPair.of_ringEquivₓ'. -/
 /-- Construct a `ring_hom_inv_pair` from both directions of a ring equiv.
 
 This is not an instance, as for equivalences that are involutions, a better instance
@@ -153,12 +132,6 @@ theorem of_ringEquiv (e : R₁ ≃+* R₂) : RingHomInvPair (↑e : R₁ →+* R
   ⟨e.symm_toRingHom_comp_toRingHom, e.symm.symm_toRingHom_comp_toRingHom⟩
 #align ring_hom_inv_pair.of_ring_equiv RingHomInvPair.of_ringEquiv
 
-/- warning: ring_hom_inv_pair.symm -> RingHomInvPair.symm is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] (σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (σ₂₁ : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) [_inst_5 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ₁₂ σ₂₁], RingHomInvPair.{u2, u1} R₂ R₁ _inst_2 _inst_1 σ₂₁ σ₁₂
-but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (σ₂₁ : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) [_inst_5 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ σ₂₁], RingHomInvPair.{u1, u2} R₂ R₁ _inst_2 _inst_1 σ₂₁ σ₁₂
-Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.symm RingHomInvPair.symmₓ'. -/
 /--
 Swap the direction of a `ring_hom_inv_pair`. This is not an instance as it would loop, and better
 instances are often available and may often be preferrable to using this one. Indeed, this
@@ -198,12 +171,6 @@ class RingHomSurjective (σ : R₁ →+* R₂) : Prop where
 #align ring_hom_surjective RingHomSurjective
 -/
 
-/- warning: ring_hom.is_surjective -> RingHom.surjective is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] (σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) [t : RingHomSurjective.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u1, succ u2} R₁ R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ)
-but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_surjective RingHom.surjectiveₓ'. -/
 theorem RingHom.surjective (σ : R₁ →+* R₂) [t : RingHomSurjective σ] : Function.Surjective σ :=
   t.is_surjective
 #align ring_hom.is_surjective RingHom.surjective
@@ -225,12 +192,6 @@ instance ids : RingHomSurjective (RingHom.id R₁) :=
 #align ring_hom_surjective.ids RingHomSurjective.ids
 -/
 
-/- warning: ring_hom_surjective.comp -> RingHomSurjective.comp is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] [_inst_5 : RingHomSurjective.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ₁₂] [_inst_6 : RingHomSurjective.{u2, u3} R₂ R₃ _inst_2 _inst_3 σ₂₃], RingHomSurjective.{u1, u3} R₁ R₃ _inst_1 _inst_3 σ₁₃
-but is expected to have type
-  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] [_inst_5 : RingHomSurjective.{u3, u2} R₁ R₂ _inst_1 _inst_2 σ₁₂] [_inst_6 : RingHomSurjective.{u2, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃], RingHomSurjective.{u3, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃
-Case conversion may be inaccurate. Consider using '#align ring_hom_surjective.comp RingHomSurjective.compₓ'. -/
 /-- This cannot be an instance as there is no way to infer `σ₁₂` and `σ₂₃`. -/
 theorem comp [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] [RingHomSurjective σ₁₂] [RingHomSurjective σ₂₃] :
     RingHomSurjective σ₁₃ :=
Diff
@@ -105,10 +105,7 @@ but is expected to have type
   forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eqₓ'. -/
 @[simp]
-theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
-  by
-  rw [← RingHom.comp_apply, comp_eq]
-  simp
+theorem comp_apply_eq {x : R₁} : σ' (σ x) = x := by rw [← RingHom.comp_apply, comp_eq]; simp
 #align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eq
 
 /- warning: ring_hom_inv_pair.comp_apply_eq₂ -> RingHomInvPair.comp_apply_eq₂ is a dubious translation:
@@ -118,10 +115,7 @@ but is expected to have type
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂ₓ'. -/
 @[simp]
-theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x :=
-  by
-  rw [← RingHom.comp_apply, comp_eq₂]
-  simp
+theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x := by rw [← RingHom.comp_apply, comp_eq₂]; simp
 #align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂
 
 #print RingHomInvPair.ids /-
@@ -184,17 +178,13 @@ namespace RingHomCompTriple
 
 #print RingHomCompTriple.ids /-
 instance ids : RingHomCompTriple (RingHom.id R₁) σ₁₂ σ₁₂ :=
-  ⟨by
-    ext
-    simp⟩
+  ⟨by ext; simp⟩
 #align ring_hom_comp_triple.ids RingHomCompTriple.ids
 -/
 
 #print RingHomCompTriple.right_ids /-
 instance right_ids : RingHomCompTriple σ₁₂ (RingHom.id R₂) σ₁₂ :=
-  ⟨by
-    ext
-    simp⟩
+  ⟨by ext; simp⟩
 #align ring_hom_comp_triple.right_ids RingHomCompTriple.right_ids
 -/
 
Diff
@@ -145,10 +145,7 @@ instance triples₂ {σ₂₁ : R₂ →+* R₁} [RingHomInvPair σ₁₂ σ₂
 -/
 
 /- warning: ring_hom_inv_pair.of_ring_equiv -> RingHomInvPair.of_ringEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] (e : RingEquiv.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))), RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingEquivClass.toRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingEquiv.ringEquivClass.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))))))) e) ((fun (a : Sort.{max (succ u2) (succ u1)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u2) (succ u1), max (succ u2) (succ u1)} a b] => self.0) (RingEquiv.{u2, u1} R₂ R₁ (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) (outParam.{max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (HasLiftT.mk.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} R₂ R₁ (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) (outParam.{max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (CoeTCₓ.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} R₂ R₁ (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) (outParam.{max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (RingHom.hasCoeT.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} R₂ R₁ (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingEquivClass.toRingHomClass.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} R₂ R₁ (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingEquiv.ringEquivClass.{u2, u1} R₂ R₁ (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))))))) (RingEquiv.symm.{u1, u2} R₁ R₂ (Distrib.toHasMul.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasAdd.{u1} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)))) (Distrib.toHasMul.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) (Distrib.toHasAdd.{u2} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)))) e))
-but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (e : RingEquiv.{u2, u1} R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))), RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 (RingHomClass.toRingHom.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingEquivClass.toRingHomClass.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)))))) e) (RingHomClass.toRingHom.{max u2 u1, u1, u2} (RingEquiv.{u1, u2} R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingEquivClass.toRingHomClass.{max u2 u1, u1, u2} (RingEquiv.{u1, u2} R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)))))) (RingEquiv.symm.{u2, u1} R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (Distrib.toAdd.{u2} R₁ (NonUnitalNonAssocSemiring.toDistrib.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)))) (Distrib.toAdd.{u1} R₂ (NonUnitalNonAssocSemiring.toDistrib.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)))) e))
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.of_ring_equiv RingHomInvPair.of_ringEquivₓ'. -/
 /-- Construct a `ring_hom_inv_pair` from both directions of a ring equiv.
 
Diff
@@ -70,7 +70,7 @@ namespace RingHomCompTriple
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u3} R₃ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₂ -> R₃) (RingHom.hasCoeToFun.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₂₃ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ₁₂ x)) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₁ -> R₃) (RingHom.hasCoeToFun.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₁₃ x)
 but is expected to have type
-  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
+  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
 Case conversion may be inaccurate. Consider using '#align ring_hom_comp_triple.comp_apply RingHomCompTriple.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] {x : R₁} : σ₂₃ (σ₁₂ x) = σ₁₃ x :=
@@ -102,7 +102,7 @@ variable [RingHomInvPair σ σ']
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u1} R₁ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ x)) x
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eqₓ'. -/
 @[simp]
 theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
@@ -115,7 +115,7 @@ theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' x)) x
 but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
+  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂ₓ'. -/
 @[simp]
 theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x :=
@@ -215,7 +215,7 @@ class RingHomSurjective (σ : R₁ →+* R₂) : Prop where
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] (σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) [t : RingHomSurjective.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u1, succ u2} R₁ R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ)
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
 Case conversion may be inaccurate. Consider using '#align ring_hom.is_surjective RingHom.surjectiveₓ'. -/
 theorem RingHom.surjective (σ : R₁ →+* R₂) [t : RingHomSurjective σ] : Function.Surjective σ :=
   t.is_surjective
Diff
@@ -70,7 +70,7 @@ namespace RingHomCompTriple
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u3} R₃ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₂ -> R₃) (RingHom.hasCoeToFun.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₂₃ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ₁₂ x)) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₁ -> R₃) (RingHom.hasCoeToFun.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₁₃ x)
 but is expected to have type
-  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
+  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
 Case conversion may be inaccurate. Consider using '#align ring_hom_comp_triple.comp_apply RingHomCompTriple.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] {x : R₁} : σ₂₃ (σ₁₂ x) = σ₁₃ x :=
@@ -102,7 +102,7 @@ variable [RingHomInvPair σ σ']
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u1} R₁ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ x)) x
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eqₓ'. -/
 @[simp]
 theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
@@ -115,7 +115,7 @@ theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' x)) x
 but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
+  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂ₓ'. -/
 @[simp]
 theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x :=
@@ -215,7 +215,7 @@ class RingHomSurjective (σ : R₁ →+* R₂) : Prop where
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] (σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) [t : RingHomSurjective.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u1, succ u2} R₁ R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ)
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
 Case conversion may be inaccurate. Consider using '#align ring_hom.is_surjective RingHom.surjectiveₓ'. -/
 theorem RingHom.surjective (σ : R₁ →+* R₂) [t : RingHomSurjective σ] : Function.Surjective σ :=
   t.is_surjective
Diff
@@ -70,7 +70,7 @@ namespace RingHomCompTriple
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u3} R₃ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₂ -> R₃) (RingHom.hasCoeToFun.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₂₃ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ₁₂ x)) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) (fun (_x : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) => R₁ -> R₃) (RingHom.hasCoeToFun.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)) σ₁₃ x)
 but is expected to have type
-  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
+  forall {R₁ : Type.{u3}} {R₂ : Type.{u2}} {R₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u1} R₃] {σ₁₂ : RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_4 : RingHomCompTriple.{u3, u2, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] {x : R₁}, Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₃) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₃) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₂₃ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u3, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ₁₂ x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₃) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonUnitalNonAssocSemiring.toMul.{u3} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₁ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)) R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u3} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3))))) σ₁₃ x)
 Case conversion may be inaccurate. Consider using '#align ring_hom_comp_triple.comp_apply RingHomCompTriple.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] {x : R₁} : σ₂₃ (σ₁₂ x) = σ₁₃ x :=
@@ -102,7 +102,7 @@ variable [RingHomInvPair σ σ']
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u1} R₁ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ x)) x
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] {σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} {σ' : RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₁}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (a : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) a) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u1, u2} R₂ R₁ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))))) σ' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eqₓ'. -/
 @[simp]
 theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
@@ -115,7 +115,7 @@ theorem comp_apply_eq {x : R₁} : σ' (σ x) = x :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (fun (_x : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) => R₂ -> R₁) (RingHom.hasCoeToFun.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) σ' x)) x
 but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
+  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] {σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ' : RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)} [_inst_4 : RingHomInvPair.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ σ'] {x : R₂}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (a : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) a) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))))) σ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ (fun (_x : R₂) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₂) => R₁) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonUnitalNonAssocSemiring.toMul.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₁ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1)) R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (RingHom.instRingHomClassRingHom.{u2, u1} R₂ R₁ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1))))) σ' x)) x
 Case conversion may be inaccurate. Consider using '#align ring_hom_inv_pair.comp_apply_eq₂ RingHomInvPair.comp_apply_eq₂ₓ'. -/
 @[simp]
 theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x :=
@@ -215,7 +215,7 @@ class RingHomSurjective (σ : R₁ →+* R₂) : Prop where
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] (σ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) [t : RingHomSurjective.{u1, u2} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u1, succ u2} R₁ R₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) (fun (_x : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) => R₁ -> R₂) (RingHom.hasCoeToFun.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)) σ)
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] (σ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) [t : RingHomSurjective.{u2, u1} R₁ R₂ _inst_1 _inst_2 σ], Function.Surjective.{succ u2, succ u1} R₁ R₂ (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ (fun (_x : R₁) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R₁) => R₂) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonUnitalNonAssocSemiring.toMul.{u2} R₁ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₁ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)) R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2))))) σ)
 Case conversion may be inaccurate. Consider using '#align ring_hom.is_surjective RingHom.surjectiveₓ'. -/
 theorem RingHom.surjective (σ : R₁ →+* R₂) [t : RingHomSurjective σ] : Function.Surjective σ :=
   t.is_surjective

Changes in mathlib4

mathlib3
mathlib4
chore: classify porting notes referring to missing linters (#12098)

Reference the newly created issues #12094 and #12096, as well as the pre-existing #5171. Change all references to #10927 to #5171. Some of these changes were not labelled as "porting note"; change this for good measure.

Diff
@@ -179,7 +179,8 @@ theorem RingHom.surjective (σ : R₁ →+* R₂) [t : RingHomSurjective σ] : F
 namespace RingHomSurjective
 
 -- The linter gives a false positive, since `σ₂` is an out_param
--- @[nolint dangerous_instance] Porting note: this linter is not implemented yet
+-- Porting note(#12094): removed nolint; dangerous_instance linter not ported yet
+-- @[nolint dangerous_instance]
 instance (priority := 100) invPair {σ₁ : R₁ →+* R₂} {σ₂ : R₂ →+* R₁} [RingHomInvPair σ₁ σ₂] :
     RingHomSurjective σ₁ :=
   ⟨fun x => ⟨σ₂ x, RingHomInvPair.comp_apply_eq₂⟩⟩
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -43,7 +43,6 @@ Instances of these typeclasses mostly involving `RingHom.id` are also provided:
 
 
 variable {R₁ : Type*} {R₂ : Type*} {R₃ : Type*}
-
 variable [Semiring R₁] [Semiring R₂] [Semiring R₃]
 
 /-- Class that expresses that a ring homomorphism is in fact the identity. -/
feat: sum and product of commuting semisimple endomorphisms (#10808)
  • Prove isSemisimple_of_mem_adjoin: if two commuting endomorphisms of a finite-dimensional vector space over a perfect field are both semisimple, then every endomorphism in the algebra generated by them (in particular their product and sum) is semisimple.

  • In the same file LinearAlgebra/Semisimple.lean, eq_zero_of_isNilpotent_isSemisimple and isSemisimple_of_squarefree_aeval_eq_zero are golfed, and IsSemisimple.minpoly_squarefree is proved

RingTheory/SimpleModule.lean:

  • Define IsSemisimpleRing R to mean that R is a semisimple R-module. add properties of simple modules and a characterization (they are exactly the quotients of the ring by maximal left ideals).

  • The annihilator of a semisimple module is a radical ideal.

  • Any module over a semisimple ring is semisimple.

  • A finite product of semisimple rings is semisimple.

  • Any quotient of a semisimple ring is semisimple.

  • Add Artin--Wedderburn as a TODO (proof_wanted).

  • Order/Atoms.lean: add the instance from IsSimpleOrder to ComplementedLattice, so that IsSimpleModule → IsSemisimpleModule is automatically inferred.

Prerequisites for showing a product of semisimple rings is semisimple:

  • Algebra/Module/Submodule/Map.lean: generalize orderIsoMapComap so that it only requires RingHomSurjective rather than RingHomInvPair

  • Algebra/Ring/CompTypeclasses.lean, Mathlib/Algebra/Ring/Pi.lean, Algebra/Ring/Prod.lean: add RingHomSurjective instances

RingTheory/Artinian.lean:

  • quotNilradicalEquivPi: the quotient of a commutative Artinian ring R by its nilradical is isomorphic to the (finite) product of its quotients by maximal ideals (therefore a product of fields). equivPi: if the ring is moreover reduced, then the ring itself is a product of fields. Deduce that R is a semisimple ring and both R and R[X] are decomposition monoids. Requires RingEquiv.quotientBot in RingTheory/Ideal/QuotientOperations.lean.

  • Data/Polynomial/Eval.lean: the polynomial ring over a finite product of rings is isomorphic to the product of polynomial rings over individual rings. (Used to show R[X] is a decomposition monoid.)

Other necessary results:

  • FieldTheory/Minpoly/Field.lean: the minimal polynomial of an element in a reduced algebra over a field is radical.

  • RingTheory/PowerBasis.lean: generalize PowerBasis.finiteDimensional and rename it to .finite.

Annihilator stuff, some of which do not end up being used:

  • RingTheory/Ideal/Operations.lean: define Module.annihilator and redefine Submodule.annihilator in terms of it; add lemmas, including one that says an arbitrary intersection of radical ideals is radical. The new lemma Ideal.isRadical_iff_pow_one_lt depends on pow_imp_self_of_one_lt in Mathlib/Data/Nat/Interval.lean, which is also used to golf the proof of isRadical_iff_pow_one_lt.

  • Algebra/Module/Torsion.lean: add a lemma and an instance (unused)

  • Data/Polynomial/Module/Basic.lean: add a def (unused) and a lemma

  • LinearAlgebra/AnnihilatingPolynomial.lean: add lemma span_minpoly_eq_annihilator

Some results about idempotent linear maps (projections) and idempotent elements, used to show that any (left) ideal in a semisimple ring is spanned by an idempotent element (unused):

  • LinearAlgebra/Projection.lean: add def isIdempotentElemEquiv

  • LinearAlgebra/Span.lean: add two lemmas

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -198,4 +198,6 @@ theorem comp [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] [RingHomSurjective 
       rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this }
 #align ring_hom_surjective.comp RingHomSurjective.comp
 
+instance (σ : R₁ ≃+* R₂) : RingHomSurjective (σ : R₁ →+* R₂) := ⟨σ.surjective⟩
+
 end RingHomSurjective
chore: classify simp can do this porting notes (#10619)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to simp can prove this or simp can simplify this.

Diff
@@ -87,9 +87,9 @@ class RingHomInvPair (σ : R₁ →+* R₂) (σ' : outParam (R₂ →+* R₁)) :
   comp_eq₂ : σ.comp σ' = RingHom.id R₂
 #align ring_hom_inv_pair RingHomInvPair
 
--- attribute [simp] RingHomInvPair.comp_eq Porting note: `simp` can prove it
+-- attribute [simp] RingHomInvPair.comp_eq Porting note (#10618): `simp` can prove it
 
--- attribute [simp] RingHomInvPair.comp_eq₂ Porting note: `simp` can prove it
+-- attribute [simp] RingHomInvPair.comp_eq₂ Porting note (#10618): `simp` can prove it
 
 variable {σ : R₁ →+* R₂} {σ' : R₂ →+* R₁}
 
@@ -97,13 +97,13 @@ namespace RingHomInvPair
 
 variable [RingHomInvPair σ σ']
 
--- @[simp] Porting note: `simp` can prove it
+-- @[simp] Porting note (#10618): `simp` can prove it
 theorem comp_apply_eq {x : R₁} : σ' (σ x) = x := by
   rw [← RingHom.comp_apply, comp_eq]
   simp
 #align ring_hom_inv_pair.comp_apply_eq RingHomInvPair.comp_apply_eq
 
--- @[simp] Porting note: `simp` can prove it
+-- @[simp] Porting note (#10618): `simp` can prove it
 theorem comp_apply_eq₂ {x : R₂} : σ (σ' x) = x := by
   rw [← RingHom.comp_apply, comp_eq₂]
   simp
chore: remove many Type _ before the colon (#7718)

We have turned to Type* instead of Type _, but many of them remained in mathlib because the straight replacement did not work. In general, having Type _ before the colon is a code smell, though, as it hides which types should be in the same universe and which shouldn't, and is not very robust.

This PR replaces most of the remaining Type _ before the colon (except those in category theory) by Type* or Type u. This has uncovered a few bugs (where declarations were not as polymorphic as they should be).

I had to increase heartbeats at two places when replacing Type _ by Type*, but I think it's worth it as it's really more robust.

Diff
@@ -51,10 +51,10 @@ variable [Semiring R₁] [Semiring R₂] [Semiring R₃]
 -- modules over some diagram in the category of rings,
 -- e.g. when defining presheaves over a presheaf of rings.
 -- See `Mathlib.Algebra.Category.ModuleCat.Presheaf`.
-class RingHomId {R : Type _} [Semiring R] (σ : R →+* R) : Prop where
+class RingHomId {R : Type*} [Semiring R] (σ : R →+* R) : Prop where
   eq_id : σ = RingHom.id R
 
-instance {R : Type _} [Semiring R] : RingHomId (RingHom.id R) where
+instance {R : Type*} [Semiring R] : RingHomId (RingHom.id R) where
   eq_id := rfl
 
 /-- Class that expresses the fact that three ring homomorphisms form a composition triple. This is
feat: presheaf of modules over a presheaf of rings (#4670)

This is extracted from the draft PR https://github.com/leanprover-community/mathlib4/pull/4116 which tries to compare this definition with the definition in terms of a presheaf in RingMod.

Co-authored-by: Oliver Nash <github@olivernash.org> Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Anatole Dedecker <anatolededecker@gmail.com> Co-authored-by: Matthew Robert Ballard <k.buzzard@imperial.ac.uk> Co-authored-by: Peter Nelson <71660771+apnelson1@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Rémy Degenne <remydegenne@gmail.com> Co-authored-by: Thomas Browning <tb65536@uw.edu> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Robert Ballard <matt@mrb.email> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Arend Mellendijk <arend.mellendijk@gmail.com> Co-authored-by: Markus Himmel <markus@himmel-villmar.de> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com> Co-authored-by: Bulhwi Cha <chabulhwi@semmalgil.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: negiizhao <egresf@gmail.com> Co-authored-by: Alex J Best <alex.j.best@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com> Co-authored-by: Jz Pan <acme_pjz@hotmail.com>

Diff
@@ -11,6 +11,7 @@ import Mathlib.Algebra.Ring.Equiv
 # Propositional typeclasses on several ring homs
 
 This file contains three typeclasses used in the definition of (semi)linear maps:
+* `RingHomId σ`, which expresses the fact that `σ₂₃ = id`
 * `RingHomCompTriple σ₁₂ σ₂₃ σ₁₃`, which expresses the fact that `σ₂₃.comp σ₁₂ = σ₁₃`
 * `RingHomInvPair σ₁₂ σ₂₁`, which states that `σ₁₂` and `σ₂₁` are inverses of each other
 * `RingHomSurjective σ`, which states that `σ` is surjective
@@ -45,6 +46,17 @@ variable {R₁ : Type*} {R₂ : Type*} {R₃ : Type*}
 
 variable [Semiring R₁] [Semiring R₂] [Semiring R₃]
 
+/-- Class that expresses that a ring homomorphism is in fact the identity. -/
+-- This at first seems not very useful. However we need this when considering
+-- modules over some diagram in the category of rings,
+-- e.g. when defining presheaves over a presheaf of rings.
+-- See `Mathlib.Algebra.Category.ModuleCat.Presheaf`.
+class RingHomId {R : Type _} [Semiring R] (σ : R →+* R) : Prop where
+  eq_id : σ = RingHom.id R
+
+instance {R : Type _} [Semiring R] : RingHomId (RingHom.id R) where
+  eq_id := rfl
+
 /-- Class that expresses the fact that three ring homomorphisms form a composition triple. This is
 used to handle composition of semilinear maps. -/
 class RingHomCompTriple (σ₁₂ : R₁ →+* R₂) (σ₂₃ : R₂ →+* R₃) (σ₁₃ : outParam (R₁ →+* R₃)) :
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -41,7 +41,7 @@ Instances of these typeclasses mostly involving `RingHom.id` are also provided:
 -/
 
 
-variable {R₁ : Type _} {R₂ : Type _} {R₃ : Type _}
+variable {R₁ : Type*} {R₂ : Type*} {R₃ : Type*}
 
 variable [Semiring R₁] [Semiring R₂] [Semiring R₃]
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2021 Frédéric Dupuis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Frédéric Dupuis, Heather Macbeth
-
-! This file was ported from Lean 3 source module algebra.ring.comp_typeclasses
-! leanprover-community/mathlib commit 207cfac9fcd06138865b5d04f7091e46d9320432
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Ring.Equiv
 
+#align_import algebra.ring.comp_typeclasses from "leanprover-community/mathlib"@"207cfac9fcd06138865b5d04f7091e46d9320432"
+
 /-!
 # Propositional typeclasses on several ring homs
 
chore: fix casing errors per naming scheme (#1670)
Diff
@@ -127,7 +127,7 @@ theorem of_ringEquiv (e : R₁ ≃+* R₂) : RingHomInvPair (↑e : R₁ →+* R
 #align ring_hom_inv_pair.of_ring_equiv RingHomInvPair.of_ringEquiv
 
 /--
-Swap the direction of a `ring_hom_inv_pair`. This is not an instance as it would loop, and better
+Swap the direction of a `RingHomInvPair`. This is not an instance as it would loop, and better
 instances are often available and may often be preferrable to using this one. Indeed, this
 declaration is not currently used in mathlib.
 
chore: tidy various files (#1311)
Diff
@@ -24,7 +24,7 @@ composing two conjugate-linear maps is a linear map, and not a `conj.comp conj`-
 
 Instances of these typeclasses mostly involving `RingHom.id` are also provided:
 * `RingHomInvPair (RingHom.id R) (RingHom.id R)`
-* `[ringHomInvPair σ₁₂ σ₂₁] : RingHomCompTriple σ₁₂ σ₂₁ (RingHom.id R₁)`
+* `[RingHomInvPair σ₁₂ σ₂₁] : RingHomCompTriple σ₁₂ σ₂₁ (RingHom.id R₁)`
 * `RingHomCompTriple (RingHom.id R₁) σ₁₂ σ₁₂`
 * `RingHomCompTriple σ₁₂ (RingHom.id R₂) σ₁₂`
 * `RingHomSurjective (RingHom.id R)`
@@ -172,10 +172,10 @@ namespace RingHomSurjective
 
 -- The linter gives a false positive, since `σ₂` is an out_param
 -- @[nolint dangerous_instance] Porting note: this linter is not implemented yet
-instance (priority := 100) inv_pair {σ₁ : R₁ →+* R₂} {σ₂ : R₂ →+* R₁} [RingHomInvPair σ₁ σ₂] :
+instance (priority := 100) invPair {σ₁ : R₁ →+* R₂} {σ₂ : R₂ →+* R₁} [RingHomInvPair σ₁ σ₂] :
     RingHomSurjective σ₁ :=
   ⟨fun x => ⟨σ₂ x, RingHomInvPair.comp_apply_eq₂⟩⟩
-#align ring_hom_surjective.inv_pair RingHomSurjective.inv_pair
+#align ring_hom_surjective.inv_pair RingHomSurjective.invPair
 
 instance ids : RingHomSurjective (RingHom.id R₁) :=
   ⟨is_surjective⟩
feat port: Algebra.Ring.CompTypeclasses (#1226)

Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>

Dependencies 63

64 files ported (100.0%)
32737 lines ported (100.0%)

All dependencies are ported!