@@ -49,7 +49,7 @@ def restrictScalars (f : M ≃ₗ[S] M₂) : M ≃ₗ[R] M₂ :=
49
49
right_inv := f.right_inv }
50
50
51
51
theorem restrictScalars_injective :
52
- Function.Injective (restrictScalars R : (M ≃ₗ[S] M₂) → M ≃ₗ[R] M₂) := fun _ _ h =>
52
+ Function.Injective (restrictScalars R : (M ≃ₗ[S] M₂) → M ≃ₗ[R] M₂) := fun _ _ h ↦
53
53
ext (LinearEquiv.congr_fun h : _)
54
54
55
55
@[simp]
@@ -61,12 +61,12 @@ end RestrictScalars
61
61
62
62
theorem _root_.Module.End_isUnit_iff [Module R M] (f : Module.End R M) :
63
63
IsUnit f ↔ Function.Bijective f :=
64
- ⟨fun h =>
64
+ ⟨fun h ↦
65
65
Function.bijective_iff_has_inverse.mpr <|
66
66
⟨h.unit.inv,
67
67
⟨Module.End_isUnit_inv_apply_apply_of_isUnit h,
68
68
Module.End_isUnit_apply_inv_apply_of_isUnit h⟩⟩,
69
- fun H =>
69
+ fun H ↦
70
70
let e : M ≃ₗ[R] M := { f, Equiv.ofBijective f H with }
71
71
⟨⟨_, e.symm, LinearMap.ext e.right_inv, LinearMap.ext e.left_inv⟩, rfl⟩⟩
72
72
@@ -79,8 +79,8 @@ instance automorphismGroup : Group (M ≃ₗ[R] M) where
79
79
one := LinearEquiv.refl R M
80
80
inv f := f.symm
81
81
mul_assoc f g h := rfl
82
- mul_one f := ext fun x => rfl
83
- one_mul f := ext fun x => rfl
82
+ mul_one f := ext fun x ↦ rfl
83
+ one_mul f := ext fun x ↦ rfl
84
84
mul_left_inv f := ext <| f.left_inv
85
85
86
86
@[simp]
@@ -91,7 +91,7 @@ lemma coe_toLinearMap_one : (↑(1 : M ≃ₗ[R] M) : M →ₗ[R] M) = LinearMap
91
91
92
92
@[simp]
93
93
lemma coe_toLinearMap_mul {e₁ e₂ : M ≃ₗ[R] M} :
94
- (↑(e₁ * e₂) : M →ₗ[R] M) = (e₁ : M →ₗ[R] M) * (e₂ : M →ₗ[R] M) := by
94
+ (↑(e₁ * e₂) : M →ₗ[R] M) = (e₁ : M →ₗ[R] M) * (e₂ : M →ₗ[R] M) :=
95
95
rfl
96
96
97
97
theorem coe_pow (e : M ≃ₗ[R] M) (n : ℕ) : ⇑(e ^ n) = e^[n] := hom_coe_pow _ rfl (fun _ _ ↦ rfl) _ _
@@ -122,7 +122,7 @@ protected theorem smul_def (f : M ≃ₗ[R] M) (a : M) : f • a = f a :=
122
122
123
123
/-- `LinearEquiv.applyDistribMulAction` is faithful. -/
124
124
instance apply_faithfulSMul : FaithfulSMul (M ≃ₗ[R] M) M :=
125
- ⟨@fun _ _ => LinearEquiv.ext⟩
125
+ ⟨@fun _ _ ↦ LinearEquiv.ext⟩
126
126
127
127
instance apply_smulCommClass : SMulCommClass R (M ≃ₗ[R] M) M where
128
128
smul_comm r e m := (e.map_smul r m).symm
@@ -141,10 +141,10 @@ variable [Module R M] [Module R M₂] [Subsingleton M] [Subsingleton M₂]
141
141
@[simps]
142
142
def ofSubsingleton : M ≃ₗ[R] M₂ :=
143
143
{ (0 : M →ₗ[R] M₂) with
144
- toFun := fun _ => 0
145
- invFun := fun _ => 0
146
- left_inv := fun _ => Subsingleton.elim _ _
147
- right_inv := fun _ => Subsingleton.elim _ _ }
144
+ toFun := fun _ ↦ 0
145
+ invFun := fun _ ↦ 0
146
+ left_inv := fun _ ↦ Subsingleton.elim _ _
147
+ right_inv := fun _ ↦ Subsingleton.elim _ _ }
148
148
149
149
@[simp]
150
150
theorem ofSubsingleton_self : ofSubsingleton M M = refl R M := by
@@ -217,15 +217,14 @@ theorem coe_toLinearEquiv_symm (h : ∀ (c : R) (x), e (c • x) = c • e x) :
217
217
/-- An additive equivalence between commutative additive monoids is a linear equivalence between
218
218
ℕ-modules -/
219
219
def toNatLinearEquiv : M ≃ₗ[ℕ] M₂ :=
220
- e.toLinearEquiv fun c a => by rw [map_nsmul]
220
+ e.toLinearEquiv fun c a ↦ by rw [map_nsmul]
221
221
222
222
@[simp]
223
223
theorem coe_toNatLinearEquiv : ⇑e.toNatLinearEquiv = e :=
224
224
rfl
225
225
226
226
@[simp]
227
- theorem toNatLinearEquiv_toAddEquiv : ↑e.toNatLinearEquiv = e := by
228
- ext
227
+ theorem toNatLinearEquiv_toAddEquiv : ↑e.toNatLinearEquiv = e :=
229
228
rfl
230
229
231
230
@[simp]
@@ -256,7 +255,7 @@ variable (e : M ≃+ M₂)
256
255
/-- An additive equivalence between commutative additive groups is a linear
257
256
equivalence between ℤ-modules -/
258
257
def toIntLinearEquiv : M ≃ₗ[ℤ] M₂ :=
259
- e.toLinearEquiv fun c a => e.toAddMonoidHom.map_zsmul a c
258
+ e.toLinearEquiv fun c a ↦ e.toAddMonoidHom.map_zsmul a c
260
259
261
260
@[simp]
262
261
theorem coe_toIntLinearEquiv : ⇑e.toIntLinearEquiv = e :=
@@ -305,12 +304,12 @@ See note [bundled maps over different rings].
305
304
@[simps]
306
305
def ringLmapEquivSelf [Module S M] [SMulCommClass R S M] : (R →ₗ[R] M) ≃ₗ[S] M :=
307
306
{ applyₗ' S (1 : R) with
308
- toFun := fun f => f 1
307
+ toFun := fun f ↦ f 1
309
308
invFun := smulRight (1 : R →ₗ[R] R)
310
- left_inv := fun f => by
309
+ left_inv := fun f ↦ by
311
310
ext
312
311
simp only [coe_smulRight, one_apply, smul_eq_mul, ← map_smul f, mul_one]
313
- right_inv := fun x => by simp }
312
+ right_inv := fun x ↦ by simp }
314
313
315
314
end LinearMap
316
315
@@ -323,10 +322,10 @@ def addMonoidHomLequivNat {A B : Type*} (R : Type*) [Semiring R] [AddCommMonoid
323
322
where
324
323
toFun := AddMonoidHom.toNatLinearMap
325
324
invFun := LinearMap.toAddMonoidHom
326
- map_add' := by intros; ext; rfl
327
- map_smul' := by intros; ext; rfl
328
- left_inv := by intro f; ext; rfl
329
- right_inv := by intro f; ext; rfl
325
+ map_add' _ _ := rfl
326
+ map_smul' _ _ := rfl
327
+ left_inv _ := rfl
328
+ right_inv _ := rfl
330
329
331
330
/--
332
331
The `R`-linear equivalence between additive morphisms `A →+ B` and `ℤ`-linear morphisms `A →ₗ[ℤ] B`.
@@ -337,17 +336,17 @@ def addMonoidHomLequivInt {A B : Type*} (R : Type*) [Semiring R] [AddCommGroup A
337
336
where
338
337
toFun := AddMonoidHom.toIntLinearMap
339
338
invFun := LinearMap.toAddMonoidHom
340
- map_add' := by intros; ext; rfl
341
- map_smul' := by intros; ext; rfl
342
- left_inv := by intro f; ext; rfl
343
- right_inv := by intro f; ext; rfl
339
+ map_add' _ _ := rfl
340
+ map_smul' _ _ := rfl
341
+ left_inv _ := rfl
342
+ right_inv _ := rfl
344
343
345
344
/-- Ring equivalence between additive group endomorphisms of an `AddCommGroup` `A` and
346
345
`ℤ`-module endomorphisms of `A.` -/
347
346
@[simps] def addMonoidEndRingEquivInt (A : Type *) [AddCommGroup A] :
348
347
AddMonoid.End A ≃+* Module.End ℤ A :=
349
348
{ addMonoidHomLequivInt (B := A) ℤ with
350
- map_mul' := fun _ _ => rfl }
349
+ map_mul' := fun _ _ ↦ rfl }
351
350
352
351
namespace LinearEquiv
353
352
@@ -391,7 +390,6 @@ instance : Unique (M ≃ₛₗ[σ₁₂] M₂) where
391
390
uniq _ := toLinearMap_injective (Subsingleton.elim _ _)
392
391
default := 0
393
392
394
-
395
393
end Module
396
394
397
395
instance uniqueOfSubsingleton [Subsingleton R] [Subsingleton R₂] : Unique (M ≃ₛₗ[σ₁₂] M₂) := by
@@ -411,12 +409,8 @@ variable (V V₂ R)
411
409
Differs from `TensorProduct.curry`. -/
412
410
protected def curry : (V × V₂ → R) ≃ₗ[R] V → V₂ → R :=
413
411
{ Equiv.curry _ _ _ with
414
- map_add' := fun _ _ => by
415
- ext
416
- rfl
417
- map_smul' := fun _ _ => by
418
- ext
419
- rfl }
412
+ map_add' := fun _ _ ↦ rfl
413
+ map_smul' := fun _ _ ↦ rfl }
420
414
421
415
@[simp]
422
416
theorem coe_curry : ⇑(LinearEquiv.curry R V V₂) = curry :=
@@ -501,7 +495,7 @@ linear isomorphism between the two function spaces. -/
501
495
def arrowCongr {R M₁ M₂ M₂₁ M₂₂ : Sort _} [CommSemiring R] [AddCommMonoid M₁] [AddCommMonoid M₂]
502
496
[AddCommMonoid M₂₁] [AddCommMonoid M₂₂] [Module R M₁] [Module R M₂] [Module R M₂₁]
503
497
[Module R M₂₂] (e₁ : M₁ ≃ₗ[R] M₂) (e₂ : M₂₁ ≃ₗ[R] M₂₂) : (M₁ →ₗ[R] M₂₁) ≃ₗ[R] M₂ →ₗ[R] M₂₂ where
504
- toFun := fun f : M₁ →ₗ[R] M₂₁ => (e₂ : M₂₁ →ₗ[R] M₂₂).comp <| f.comp (e₁.symm : M₂ →ₗ[R] M₁)
498
+ toFun := fun f : M₁ →ₗ[R] M₂₁ ↦ (e₂ : M₂₁ →ₗ[R] M₂₂).comp <| f.comp (e₁.symm : M₂ →ₗ[R] M₁)
505
499
invFun f := (e₂.symm : M₂₂ →ₗ[R] M₂₁).comp <| f.comp (e₁ : M₁ →ₗ[R] M₂)
506
500
left_inv f := by
507
501
ext x
@@ -571,8 +565,7 @@ theorem conj_comp (e : M ≃ₗ[R] M₂) (f g : Module.End R M) :
571
565
arrowCongr_comp e e e f g
572
566
573
567
theorem conj_trans (e₁ : M ≃ₗ[R] M₂) (e₂ : M₂ ≃ₗ[R] M₃) :
574
- e₁.conj.trans e₂.conj = (e₁.trans e₂).conj := by
575
- ext f x
568
+ e₁.conj.trans e₂.conj = (e₁.trans e₂).conj :=
576
569
rfl
577
570
578
571
@[simp]
@@ -652,7 +645,7 @@ theorem funLeft_surjective_of_injective (f : m → n) (hf : Injective f) :
652
645
Surjective (funLeft R M f) := by
653
646
classical
654
647
intro g
655
- refine ⟨fun x => if h : ∃ y, f y = x then g h.choose else 0 , ?_⟩
648
+ refine ⟨fun x ↦ if h : ∃ y, f y = x then g h.choose else 0 , ?_⟩
656
649
ext
657
650
dsimp only [funLeft_apply]
658
651
split_ifs with w
@@ -677,10 +670,10 @@ open LinearMap
677
670
construct a linear equivalence `(n → M) ≃ₗ[R] (m → M)` -/
678
671
def funCongrLeft (e : m ≃ n) : (n → M) ≃ₗ[R] m → M :=
679
672
LinearEquiv.ofLinear (funLeft R M e) (funLeft R M e.symm)
680
- (LinearMap.ext fun x =>
681
- funext fun i => by rw [id_apply, ← funLeft_comp, Equiv.symm_comp_self, LinearMap.funLeft_id])
682
- (LinearMap.ext fun x =>
683
- funext fun i => by rw [id_apply, ← funLeft_comp, Equiv.self_comp_symm, LinearMap.funLeft_id])
673
+ (LinearMap.ext fun x ↦
674
+ funext fun i ↦ by rw [id_apply, ← funLeft_comp, Equiv.symm_comp_self, LinearMap.funLeft_id])
675
+ (LinearMap.ext fun x ↦
676
+ funext fun i ↦ by rw [id_apply, ← funLeft_comp, Equiv.self_comp_symm, LinearMap.funLeft_id])
684
677
685
678
@[simp]
686
679
theorem funCongrLeft_apply (e : m ≃ n) (x : n → M) : funCongrLeft R M e x = funLeft R M e x :=
0 commit comments