algebra.ring.comp_typeclasses
⟷
Mathlib.Algebra.Ring.CompTypeclasses
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 σ₁₃ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -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₂⟩⟩
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)
@@ -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. -/
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>
@@ -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
@@ -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
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.
@@ -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
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>
@@ -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₃)) :
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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₃]
@@ -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
@@ -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.
@@ -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⟩
All dependencies are ported!