@@ -182,6 +182,8 @@ h.to_add_monoid_hom.map_sub x y
182
182
@[to_additive " The group of additive automorphisms." ]
183
183
def mul_aut (M : Type *) [has_mul M] := M ≃* M
184
184
185
+ attribute [reducible] mul_aut add_aut
186
+
185
187
namespace mul_aut
186
188
187
189
variables (M) [has_mul M]
@@ -200,6 +202,9 @@ intros; ext; try { refl }; apply equiv.left_inv
200
202
201
203
instance : inhabited (mul_aut M) := ⟨1 ⟩
202
204
205
+ @[simp] lemma coe_mul (e₁ e₂ : mul_aut M) : ⇑(e₁ * e₂) = e₁ ∘ e₂ := rfl
206
+ @[simp] lemma coe_one : ⇑(1 : mul_aut M) = id := rfl
207
+
203
208
/-- Monoid hom from the group of multiplicative automorphisms to the group of permutations. -/
204
209
def to_perm : mul_aut M →* equiv.perm M :=
205
210
by refine_struct { to_fun := mul_equiv.to_equiv }; intros; refl
@@ -224,6 +229,9 @@ intros; ext; try { refl }; apply equiv.left_inv
224
229
225
230
instance : inhabited (add_aut A) := ⟨1 ⟩
226
231
232
+ @[simp] lemma coe_mul (e₁ e₂ : add_aut A) : ⇑(e₁ * e₂) = e₁ ∘ e₂ := rfl
233
+ @[simp] lemma coe_one : ⇑(1 : add_aut A) = id := rfl
234
+
227
235
/-- Monoid hom from the group of multiplicative automorphisms to the group of permutations. -/
228
236
def to_perm : add_aut A →* equiv.perm A :=
229
237
by refine_struct { to_fun := add_equiv.to_equiv }; intros; refl
@@ -265,13 +273,27 @@ protected def mul_left (a : G) : perm G :=
265
273
left_inv := assume x, show a⁻¹ * (a * x) = x, from inv_mul_cancel_left a x,
266
274
right_inv := assume x, show a * (a⁻¹ * x) = x, from mul_inv_cancel_left a x }
267
275
276
+ @[simp, to_additive]
277
+ lemma coe_mul_left (a : G) : ⇑(equiv.mul_left a) = (*) a := rfl
278
+
279
+ @[simp, to_additive]
280
+ lemma mul_left_symm (a : G) : (equiv.mul_left a).symm = equiv.mul_left a⁻¹ :=
281
+ ext $ λ x, rfl
282
+
268
283
@[to_additive]
269
284
protected def mul_right (a : G) : perm G :=
270
285
{ to_fun := λx, x * a,
271
286
inv_fun := λx, x * a⁻¹,
272
287
left_inv := assume x, show (x * a) * a⁻¹ = x, from mul_inv_cancel_right x a,
273
288
right_inv := assume x, show (x * a⁻¹) * a = x, from inv_mul_cancel_right x a }
274
289
290
+ @[simp, to_additive]
291
+ lemma coe_mul_right (a : G) : ⇑(equiv.mul_right a) = λ x, x * a := rfl
292
+
293
+ @[simp, to_additive]
294
+ lemma mul_right_symm (a : G) : (equiv.mul_right a).symm = equiv.mul_right a⁻¹ :=
295
+ ext $ λ x, rfl
296
+
275
297
variable (G)
276
298
277
299
@[to_additive]
@@ -281,6 +303,14 @@ protected def inv : perm G :=
281
303
left_inv := assume a, inv_inv a,
282
304
right_inv := assume a, inv_inv a }
283
305
306
+ variable {G}
307
+
308
+ @[simp, to_additive]
309
+ lemma coe_inv : ⇑(equiv.inv G) = has_inv.inv := rfl
310
+
311
+ @[simp, to_additive]
312
+ lemma inv_symm : (equiv.inv G).symm = equiv.inv G := rfl
313
+
284
314
end group
285
315
286
316
section point_reflection
0 commit comments