Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit cbd1e98

Browse files
committed
chore(algebra/category/*): simp lemmas for of_hom (#12638)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
1 parent 7967128 commit cbd1e98

File tree

6 files changed

+36
-0
lines changed

6 files changed

+36
-0
lines changed

src/algebra/category/Algebra/basic.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ def of (X : Type v) [ring X] [algebra R X] : Algebra.{v} R := ⟨X⟩
6262
def of_hom {R : Type u} [comm_ring R] {X Y : Type v} [ring X] [algebra R X] [ring Y] [algebra R Y]
6363
(f : X →ₐ[R] Y) : of R X ⟶ of R Y := f
6464

65+
@[simp] lemma of_hom_apply {R : Type u} [comm_ring R]
66+
{X Y : Type v} [ring X] [algebra R X] [ring Y] [algebra R Y] (f : X →ₐ[R] Y) (x : X) :
67+
of_hom f x = f x := rfl
68+
6569
instance : inhabited (Algebra R) := ⟨of R R⟩
6670

6771
@[simp]

src/algebra/category/CommRing/basic.lean

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ def of (R : Type u) [semiring R] : SemiRing := bundled.of R
4747
/-- Typecheck a `ring_hom` as a morphism in `SemiRing`. -/
4848
def of_hom {R S : Type u} [semiring R] [semiring S] (f : R →+* S) : of R ⟶ of S := f
4949

50+
@[simp] lemma of_hom_apply {R S : Type u} [semiring R] [semiring S] (f : R →+* S) (x : R) :
51+
of_hom f x = f x := rfl
52+
5053
instance : inhabited SemiRing := ⟨of punit⟩
5154

5255
instance (R : SemiRing) : semiring R := R.str
@@ -81,6 +84,9 @@ def of (R : Type u) [ring R] : Ring := bundled.of R
8184
/-- Typecheck a `ring_hom` as a morphism in `Ring`. -/
8285
def of_hom {R S : Type u} [ring R] [ring S] (f : R →+* S) : of R ⟶ of S := f
8386

87+
@[simp] lemma of_hom_apply {R S : Type u} [ring R] [ring S] (f : R →+* S) (x : R) :
88+
of_hom f x = f x := rfl
89+
8490
instance : inhabited Ring := ⟨of punit⟩
8591

8692
instance (R : Ring) : ring R := R.str
@@ -113,6 +119,10 @@ def of (R : Type u) [comm_semiring R] : CommSemiRing := bundled.of R
113119
/-- Typecheck a `ring_hom` as a morphism in `CommSemiRing`. -/
114120
def of_hom {R S : Type u} [comm_semiring R] [comm_semiring S] (f : R →+* S) : of R ⟶ of S := f
115121

122+
@[simp]
123+
lemma of_hom_apply {R S : Type u} [comm_semiring R] [comm_semiring S] (f : R →+* S) (x : R) :
124+
of_hom f x = f x := rfl
125+
116126
instance : inhabited CommSemiRing := ⟨of punit⟩
117127

118128
instance (R : CommSemiRing) : comm_semiring R := R.str
@@ -146,6 +156,9 @@ def of (R : Type u) [comm_ring R] : CommRing := bundled.of R
146156
/-- Typecheck a `ring_hom` as a morphism in `CommRing`. -/
147157
def of_hom {R S : Type u} [comm_ring R] [comm_ring S] (f : R →+* S) : of R ⟶ of S := f
148158

159+
@[simp] lemma of_hom_apply {R S : Type u} [comm_ring R] [comm_ring S] (f : R →+* S) (x : R) :
160+
of_hom f x = f x := rfl
161+
149162
instance : inhabited CommRing := ⟨of punit⟩
150163

151164
instance (R : CommRing) : comm_ring R := R.str

src/algebra/category/Group/basic.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ add_decl_doc AddGroup.of
5050
/-- Typecheck a `add_monoid_hom` as a morphism in `AddGroup`. -/
5151
add_decl_doc AddGroup.of_hom
5252

53+
@[simp, to_additive] lemma of_hom_apply {X Y : Type*} [group X] [group Y] (f : X →* Y) (x : X) :
54+
of_hom f x = f x := rfl
55+
5356
@[to_additive]
5457
instance (G : Group) : group G := G.str
5558

@@ -112,6 +115,9 @@ add_decl_doc AddCommGroup.of
112115
/-- Typecheck a `add_monoid_hom` as a morphism in `AddCommGroup`. -/
113116
add_decl_doc AddCommGroup.of_hom
114117

118+
@[simp, to_additive] lemma of_hom_apply {X Y : Type*} [comm_group X] [comm_group Y] (f : X →* Y)
119+
(x : X) : of_hom f x = f x := rfl
120+
115121
@[to_additive]
116122
instance comm_group_instance (G : CommGroup) : comm_group G := G.str
117123

src/algebra/category/Module/basic.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ rfl
112112
def of_hom {R : Type u} [ring R] {X Y : Type v} [add_comm_group X] [module R X] [add_comm_group Y]
113113
[module R Y] (f : X →ₗ[R] Y) : of R X ⟶ of R Y := f
114114

115+
@[simp] lemma of_hom_apply {R : Type u} [ring R]
116+
{X Y : Type v} [add_comm_group X] [module R X] [add_comm_group Y] [module R Y] (f : X →ₗ[R] Y)
117+
(x : X) : of_hom f x = f x := rfl
118+
115119
instance : has_zero (Module R) := ⟨of R punit⟩
116120
instance : inhabited (Module R) := ⟨0
117121

src/algebra/category/Mon/basic.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ add_decl_doc AddMon.of
6464
/-- Typecheck a `add_monoid_hom` as a morphism in `AddMon`. -/
6565
add_decl_doc AddMon.of_hom
6666

67+
@[simp] lemma of_hom_apply {X Y : Type u} [monoid X] [monoid Y] (f : X →* Y)
68+
(x : X) : of_hom f x = f x := rfl
69+
6770
@[to_additive]
6871
instance : inhabited Mon :=
6972
-- The default instance for `monoid punit` is derived via `punit.comm_ring`,

src/algebra/category/Semigroup/basic.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ add_decl_doc AddMagma.of
6161
/-- Typecheck a `add_hom` as a morphism in `AddMagma`. -/
6262
add_decl_doc AddMagma.of_hom
6363

64+
@[simp, to_additive] lemma of_hom_apply {X Y : Type u} [has_mul X] [has_mul Y] (f : mul_hom X Y)
65+
(x : X) : of_hom f x = f x := rfl
66+
6467
@[to_additive]
6568
instance : inhabited Magma := ⟨Magma.of pempty⟩
6669

@@ -102,6 +105,9 @@ add_decl_doc AddSemigroup.of
102105
/-- Typecheck a `add_hom` as a morphism in `AddSemigroup`. -/
103106
add_decl_doc AddSemigroup.of_hom
104107

108+
@[simp, to_additive] lemma of_hom_apply {X Y : Type u} [semigroup X] [semigroup Y] (f : mul_hom X Y)
109+
(x : X) : of_hom f x = f x := rfl
110+
105111
@[to_additive]
106112
instance : inhabited Semigroup := ⟨Semigroup.of pempty⟩
107113

0 commit comments

Comments
 (0)