Skip to content

Commit 13a3aa6

Browse files
committed
chore: fix implicit-reducible diamond in subring center (leanprover-community#38262)
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
1 parent 71f4892 commit 13a3aa6

3 files changed

Lines changed: 8 additions & 7 deletions

File tree

Mathlib/Algebra/Ring/Subring/Basic.lean

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,8 +395,9 @@ theorem center_eq_top (R) [CommRing R] : center R = ⊤ :=
395395
SetLike.coe_injective (Set.center_eq_univ R)
396396

397397
/-- The center is commutative. -/
398-
instance {R} [Ring R] : CommRing (center R) :=
399-
{ (inferInstance : CommSemiring (Subsemiring.center R)), (center R).toRing with }
398+
instance {R} [Ring R] : CommRing (center R) where
399+
__ := (center R).toRing
400+
__ : CommSemiring (center R) := inferInstanceAs <| CommSemiring (Subsemiring.center R)
400401

401402
/-- The center of isomorphic (not necessarily associative) rings are isomorphic. -/
402403
@[simps!] def centerCongr (e : R ≃+* S) : center R ≃+* center S :=

Mathlib/Algebra/Ring/Subsemiring/Basic.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,10 @@ end NonAssocSemiring
287287
section Semiring
288288

289289
/-- The center is commutative. -/
290-
instance center.commSemiring {R} [Semiring R] : CommSemiring (center R) :=
291-
{ Submonoid.center.commMonoid, (center R).toSemiring with }
290+
instance center.commSemiring {R} [Semiring R] : CommSemiring (center R) where
291+
__ := (center R).toSemiring
292+
__ : CommMonoid (center R) := inferInstanceAs <| CommMonoid (Submonoid.center R)
292293

293-
set_option backward.isDefEq.respectTransparency false in
294294
-- no instance diamond, unlike the primed version
295295
example {R} [Semiring R] :
296296
center.commSemiring.toSemiring = Subsemiring.toSemiring (center R) := by

Mathlib/Algebra/Star/NonUnitalSubalgebra.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1149,11 +1149,11 @@ theorem center_eq_top (A : Type*) [StarRing R] [NonUnitalCommSemiring A] [StarRi
11491149
variable {R A}
11501150

11511151
instance instNonUnitalCommSemiring : NonUnitalCommSemiring (center R A) :=
1152-
NonUnitalSubalgebra.center.instNonUnitalCommSemiring
1152+
fast_instance% NonUnitalSubalgebra.center.instNonUnitalCommSemiring
11531153

11541154
instance instNonUnitalCommRing {A : Type*} [NonUnitalRing A] [StarRing A] [Module R A]
11551155
[IsScalarTower R A A] [SMulCommClass R A A] : NonUnitalCommRing (center R A) :=
1156-
NonUnitalSubalgebra.center.instNonUnitalCommRing
1156+
fast_instance% NonUnitalSubalgebra.center.instNonUnitalCommRing
11571157

11581158
theorem mem_center_iff {a : A} : a ∈ center R A ↔ ∀ b : A, b * a = a * b :=
11591159
Subsemigroup.mem_center_iff

0 commit comments

Comments
 (0)