Skip to content

Commit b7543c7

Browse files
committed
chore: use fast_instance% in (continuous) multilinear/alternating maps (#31789)
1 parent 6a54a80 commit b7543c7

3 files changed

Lines changed: 16 additions & 23 deletions

File tree

Mathlib/LinearAlgebra/Multilinear/Basic.lean

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ theorem coe_smul (c : S) (f : MultilinearMap R M₁ M₂) : ⇑(c • f) = c •
213213

214214
end SMul
215215

216-
instance addCommMonoid : AddCommMonoid (MultilinearMap R M₁ M₂) :=
216+
instance addCommMonoid : AddCommMonoid (MultilinearMap R M₁ M₂) := fast_instance%
217217
coe_injective.addCommMonoid _ rfl (fun _ _ => rfl) fun _ _ => rfl
218218

219219
/-- Coercion of a multilinear map to a function as an additive monoid homomorphism. -/
@@ -860,7 +860,7 @@ variable [Semiring R] [(i : ι) → AddCommMonoid (M₁ i)] [(i : ι) → Module
860860
[AddCommMonoid M₂] [Module R M₂]
861861

862862
instance [Monoid S] [DistribMulAction S M₂] [Module R M₂] [SMulCommClass R S M₂] :
863-
DistribMulAction S (MultilinearMap R M₁ M₂) :=
863+
DistribMulAction S (MultilinearMap R M₁ M₂) := fast_instance%
864864
coe_injective.distribMulAction coeAddMonoidHom fun _ _ ↦ rfl
865865

866866
section Module
@@ -869,7 +869,7 @@ variable [Semiring S] [Module S M₂] [SMulCommClass R S M₂]
869869

870870
/-- The space of multilinear maps over an algebra over `R` is a module over `R`, for the pointwise
871871
addition and scalar multiplication. -/
872-
instance : Module S (MultilinearMap R M₁ M₂) :=
872+
instance : Module S (MultilinearMap R M₁ M₂) := fast_instance%
873873
coe_injective.module _ coeAddMonoidHom fun _ _ ↦ rfl
874874

875875
instance [NoZeroSMulDivisors S M₂] : NoZeroSMulDivisors S (MultilinearMap R M₁ M₂) :=
@@ -1278,17 +1278,9 @@ instance : Sub (MultilinearMap R M₁ M₂) :=
12781278
theorem sub_apply (m : ∀ i, M₁ i) : (f - g) m = f m - g m :=
12791279
rfl
12801280

1281-
instance : AddCommGroup (MultilinearMap R M₁ M₂) :=
1282-
{ MultilinearMap.addCommMonoid with
1283-
neg_add_cancel := fun _ => MultilinearMap.ext fun _ => neg_add_cancel _
1284-
sub_eq_add_neg := fun _ _ => MultilinearMap.ext fun _ => sub_eq_add_neg _ _
1285-
zsmul := fun n f =>
1286-
{ toFun := fun m => n • f m
1287-
map_update_add' := fun m i x y => by simp [smul_add]
1288-
map_update_smul' := fun l i x d => by simp [← smul_comm x n (_ : M₂)] }
1289-
zsmul_zero' := fun _ => MultilinearMap.ext fun _ => SubNegMonoid.zsmul_zero' _
1290-
zsmul_succ' := fun _ _ => MultilinearMap.ext fun _ => SubNegMonoid.zsmul_succ' _ _
1291-
zsmul_neg' := fun _ _ => MultilinearMap.ext fun _ => SubNegMonoid.zsmul_neg' _ _ }
1281+
instance : AddCommGroup (MultilinearMap R M₁ M₂) := fast_instance%
1282+
coe_injective.addCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
1283+
(fun _ _ => rfl) (fun _ _ => rfl)
12921284

12931285
end RangeAddCommGroup
12941286

Mathlib/Topology/Algebra/Module/Alternating/Basic.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ instance [SMul R' R''] [IsScalarTower R' R'' N] : IsScalarTower R' R'' (M [⋀^
194194
instance [DistribMulAction R'ᵐᵒᵖ N] [IsCentralScalar R' N] : IsCentralScalar R' (M [⋀^ι]→L[A] N) :=
195195
fun _ _ => ext fun _ => op_smul_eq_smul _ _⟩
196196

197-
instance : MulAction R' (M [⋀^ι]→L[A] N) :=
197+
instance : MulAction R' (M [⋀^ι]→L[A] N) := fast_instance%
198198
toContinuousMultilinearMap_injective.mulAction toContinuousMultilinearMap fun _ _ => rfl
199199

200200
end SMul
@@ -223,7 +223,7 @@ theorem toAlternatingMap_add (f g : M [⋀^ι]→L[R] N) :
223223
(f + g).toAlternatingMap = f.toAlternatingMap + g.toAlternatingMap :=
224224
rfl
225225

226-
instance addCommMonoid : AddCommMonoid (M [⋀^ι]→L[R] N) :=
226+
instance addCommMonoid : AddCommMonoid (M [⋀^ι]→L[R] N) := fast_instance%
227227
toContinuousMultilinearMap_injective.addCommMonoid _ rfl (fun _ _ => rfl) fun _ _ => rfl
228228

229229
/-- Evaluation of a `ContinuousAlternatingMap` at a vector as an `AddMonoidHom`. -/
@@ -488,7 +488,7 @@ instance : Sub (M [⋀^ι]→L[R] N) :=
488488

489489
theorem sub_apply (m : ι → M) : (f - g) m = f m - g m := rfl
490490

491-
instance : AddCommGroup (M [⋀^ι]→L[R] N) :=
491+
instance : AddCommGroup (M [⋀^ι]→L[R] N) := fast_instance%
492492
toContinuousMultilinearMap_injective.addCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl)
493493
(fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl
494494

@@ -533,7 +533,7 @@ variable {R A M N ι : Type*} [Monoid R] [Semiring A] [AddCommMonoid M] [AddComm
533533
[TopologicalSpace M] [TopologicalSpace N] [Module A M] [Module A N] [DistribMulAction R N]
534534
[ContinuousConstSMul R N] [SMulCommClass A R N]
535535

536-
instance [ContinuousAdd N] : DistribMulAction R (M [⋀^ι]→L[A] N) :=
536+
instance [ContinuousAdd N] : DistribMulAction R (M [⋀^ι]→L[A] N) := fast_instance%
537537
Function.Injective.distribMulAction toMultilinearAddHom
538538
toContinuousMultilinearMap_injective fun _ _ => rfl
539539

@@ -547,7 +547,7 @@ variable {R A M N ι : Type*} [Semiring R] [Semiring A] [AddCommMonoid M] [AddCo
547547

548548
/-- The space of continuous alternating maps over an algebra over `R` is a module over `R`, for the
549549
pointwise addition and scalar multiplication. -/
550-
instance : Module R (M [⋀^ι]→L[A] N) :=
550+
instance : Module R (M [⋀^ι]→L[A] N) := fast_instance%
551551
Function.Injective.module _ toMultilinearAddHom toContinuousMultilinearMap_injective fun _ _ =>
552552
rfl
553553

Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ instance [DistribMulAction R'ᵐᵒᵖ M₂] [IsCentralScalar R' M₂] :
164164
IsCentralScalar R' (ContinuousMultilinearMap A M₁ M₂) :=
165165
fun _ _ => ext fun _ => op_smul_eq_smul _ _⟩
166166

167-
instance : MulAction R' (ContinuousMultilinearMap A M₁ M₂) :=
167+
instance : MulAction R' (ContinuousMultilinearMap A M₁ M₂) := fast_instance%
168168
Function.Injective.mulAction toMultilinearMap toMultilinearMap_injective fun _ _ => rfl
169169

170170
end SMul
@@ -185,7 +185,7 @@ theorem toMultilinearMap_add (f g : ContinuousMultilinearMap R M₁ M₂) :
185185
(f + g).toMultilinearMap = f.toMultilinearMap + g.toMultilinearMap :=
186186
rfl
187187

188-
instance addCommMonoid : AddCommMonoid (ContinuousMultilinearMap R M₁ M₂) :=
188+
instance addCommMonoid : AddCommMonoid (ContinuousMultilinearMap R M₁ M₂) := fast_instance%
189189
toMultilinearMap_injective.addCommMonoid _ rfl (fun _ _ => rfl) fun _ _ => rfl
190190

191191
/-- Evaluation of a `ContinuousMultilinearMap` at a vector as an `AddMonoidHom`. -/
@@ -485,7 +485,7 @@ instance : Sub (ContinuousMultilinearMap R M₁ M₂) :=
485485
theorem sub_apply (m : ∀ i, M₁ i) : (f - f') m = f m - f' m :=
486486
rfl
487487

488-
instance : AddCommGroup (ContinuousMultilinearMap R M₁ M₂) :=
488+
instance : AddCommGroup (ContinuousMultilinearMap R M₁ M₂) := fast_instance%
489489
toMultilinearMap_injective.addCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
490490
(fun _ _ => rfl) fun _ _ => rfl
491491

@@ -539,6 +539,7 @@ variable {R' R'' A : Type*} [Monoid R'] [Monoid R''] [Semiring A] [∀ i, AddCom
539539
[DistribMulAction R'' M₂] [ContinuousConstSMul R'' M₂] [SMulCommClass A R'' M₂]
540540

541541
instance [ContinuousAdd M₂] : DistribMulAction R' (ContinuousMultilinearMap A M₁ M₂) :=
542+
fast_instance%
542543
Function.Injective.distribMulAction
543544
{ toFun := toMultilinearMap,
544545
map_zero' := toMultilinearMap_zero,
@@ -556,7 +557,7 @@ variable {R' A : Type*} [Semiring R'] [Semiring A] [∀ i, AddCommMonoid (M₁ i
556557

557558
/-- The space of continuous multilinear maps over an algebra over `R` is a module over `R`, for the
558559
pointwise addition and scalar multiplication. -/
559-
instance : Module R' (ContinuousMultilinearMap A M₁ M₂) :=
560+
instance : Module R' (ContinuousMultilinearMap A M₁ M₂) := fast_instance%
560561
Function.Injective.module _
561562
{ toFun := toMultilinearMap,
562563
map_zero' := toMultilinearMap_zero,

0 commit comments

Comments
 (0)