@@ -35,8 +35,8 @@ structure ContinuousLinearEquiv {R : Type*} {S : Type*} [Semiring R] [Semiring S
3535 {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type *) [TopologicalSpace M]
3636 [AddCommMonoid M] (M₂ : Type *) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M]
3737 [Module S M₂] extends M ≃ₛₗ[σ] M₂ where
38- continuous_toFun : Continuous toFun := by first | fun_prop | dsimp; fun_prop
39- continuous_invFun : Continuous invFun := by first | fun_prop | dsimp; fun_prop
38+ continuous_toFun : Continuous toFun := by first | fun_prop | eta_expand; dsimp; fun_prop | skip
39+ continuous_invFun : Continuous invFun := by first | fun_prop | eta_expand; dsimp; fun_prop | skip
4040
4141attribute [inherit_doc ContinuousLinearEquiv] ContinuousLinearEquiv.continuous_toFun
4242ContinuousLinearEquiv.continuous_invFun
@@ -288,10 +288,8 @@ variable (R₁ M₁)
288288
289289/-- The identity map as a continuous linear equivalence. -/
290290@[refl]
291- protected def refl : M₁ ≃L[R₁] M₁ :=
292- { LinearEquiv.refl R₁ M₁ with
293- continuous_toFun := continuous_id
294- continuous_invFun := continuous_id }
291+ protected def refl : M₁ ≃L[R₁] M₁ where
292+ __ := LinearEquiv.refl R₁ M₁
295293
296294@[simp]
297295theorem refl_apply (x : M₁) :
@@ -346,10 +344,8 @@ theorem symm_map_nhds_eq (e : M₁ ≃SL[σ₁₂] M₂) (x : M₁) : map e.symm
346344
347345/-- The composition of two continuous linear equivalences as a continuous linear equivalence. -/
348346@[trans]
349- protected def trans (e₁ : M₁ ≃SL[σ₁₂] M₂) (e₂ : M₂ ≃SL[σ₂₃] M₃) : M₁ ≃SL[σ₁₃] M₃ :=
350- { e₁.toLinearEquiv.trans e₂.toLinearEquiv with
351- continuous_toFun := e₂.continuous_toFun.comp e₁.continuous_toFun
352- continuous_invFun := e₁.continuous_invFun.comp e₂.continuous_invFun }
347+ protected def trans (e₁ : M₁ ≃SL[σ₁₂] M₂) (e₂ : M₂ ≃SL[σ₂₃] M₃) : M₁ ≃SL[σ₁₃] M₃ where
348+ __ := e₁.toLinearEquiv.trans e₂.toLinearEquiv
353349
354350@[simp]
355351theorem trans_toLinearEquiv (e₁ : M₁ ≃SL[σ₁₂] M₂) (e₂ : M₂ ≃SL[σ₂₃] M₃) :
@@ -383,10 +379,8 @@ variable (R₁ M₁ M₂)
383379
384380/-- Product of modules is commutative up to continuous linear isomorphism. -/
385381@ [simps! apply toLinearEquiv]
386- def prodComm [Module R₁ M₂] : (M₁ × M₂) ≃L[R₁] M₂ × M₁ :=
387- { LinearEquiv.prodComm R₁ M₁ M₂ with
388- continuous_toFun := continuous_swap
389- continuous_invFun := continuous_swap }
382+ def prodComm [Module R₁ M₂] : (M₁ × M₂) ≃L[R₁] M₂ × M₁ where
383+ __ := LinearEquiv.prodComm R₁ M₁ M₂
390384
391385@[simp] lemma prodComm_symm [Module R₁ M₂] : (prodComm R₁ M₁ M₂).symm = prodComm R₁ M₂ M₁ := rfl
392386
@@ -434,8 +428,6 @@ variable (R M₁ M₂ M₃ M₄ : Type*) [Semiring R]
434428This is `LinearEquiv.prodProdProdComm` prodAssoc as a continuous linear equivalence. -/
435429def prodProdProdComm : ((M₁ × M₂) × M₃ × M₄) ≃L[R] (M₁ × M₃) × M₂ × M₄ where
436430 toLinearEquiv := LinearEquiv.prodProdProdComm R M₁ M₂ M₃ M₄
437- continuous_toFun := by fun_prop
438- continuous_invFun := by fun_prop
439431
440432@[simp]
441433theorem prodProdProdComm_symm :
@@ -468,12 +460,6 @@ variable (R M N : Type*) [Semiring R]
468460This is `Equiv.prodUnique` as a continuous linear equivalence. -/
469461def prodUnique : (M × N) ≃L[R] M where
470462 toLinearEquiv := LinearEquiv.prodUnique
471- continuous_toFun := by
472- change Continuous (Equiv.prodUnique M N)
473- dsimp; fun_prop
474- continuous_invFun := by
475- change Continuous fun x ↦ (x, default)
476- fun_prop
477463
478464@[simp]
479465lemma coe_prodUnique : (prodUnique R M N).toEquiv = Equiv.prodUnique M N := rfl
@@ -488,12 +474,6 @@ lemma prodUnique_symm_apply (x : M) : (prodUnique R M N).symm x = (x, default) :
488474This is `Equiv.uniqueProd` as a continuous linear equivalence. -/
489475def uniqueProd : (N × M) ≃L[R] M where
490476 toLinearEquiv := LinearEquiv.uniqueProd
491- continuous_toFun := by
492- change Continuous (Equiv.uniqueProd M N)
493- dsimp; fun_prop
494- continuous_invFun := by
495- change Continuous fun x ↦ (default, x)
496- fun_prop
497477
498478@[simp]
499479lemma coe_uniqueProd : (uniqueProd R M N).toEquiv = Equiv.uniqueProd M N := rfl
@@ -632,9 +612,7 @@ inverse of each other. See also `equivOfInverse'`. -/
632612def equivOfInverse (f₁ : M₁ →SL[σ₁₂] M₂) (f₂ : M₂ →SL[σ₂₁] M₁) (h₁ : Function.LeftInverse f₂ f₁)
633613 (h₂ : Function.RightInverse f₂ f₁) : M₁ ≃SL[σ₁₂] M₂ :=
634614 { f₁ with
635- continuous_toFun := f₁.continuous
636615 invFun := f₂
637- continuous_invFun := f₂.continuous
638616 left_inv := h₁
639617 right_inv := h₂ }
640618
@@ -700,10 +678,8 @@ variable {M₁} {R₄ : Type*} [Semiring R₄] [Module R₄ M₄] {σ₃₄ : R
700678/-- The continuous linear equivalence between `ULift M₁` and `M₁`.
701679
702680This is a continuous version of `ULift.moduleEquiv`. -/
703- def ulift : ULift M₁ ≃L[R₁] M₁ :=
704- { ULift.moduleEquiv with
705- continuous_toFun := continuous_uliftDown
706- continuous_invFun := continuous_uliftUp }
681+ def ulift : ULift M₁ ≃L[R₁] M₁ where
682+ __ := ULift.moduleEquiv
707683
708684/-- A pair of continuous (semi)linear equivalences generates an equivalence between the spaces of
709685continuous linear maps. See also `ContinuousLinearEquiv.arrowCongr`. -/
@@ -777,12 +753,8 @@ variable {ι : Type*} {M : ι → Type*} [∀ i, TopologicalSpace (M i)] [∀ i,
777753
778754/-- Combine a family of continuous linear equivalences into a continuous linear equivalence of
779755pi-types. -/
780- def piCongrRight : ((i : ι) → M i) ≃L[R₁] (i : ι) → N i :=
781- { LinearEquiv.piCongrRight fun i ↦ f i with
782- continuous_toFun := by
783- exact continuous_pi fun i ↦ (f i).continuous_toFun.comp (continuous_apply i)
784- continuous_invFun := by
785- exact continuous_pi fun i => (f i).continuous_invFun.comp (continuous_apply i) }
756+ def piCongrRight : ((i : ι) → M i) ≃L[R₁] (i : ι) → N i where
757+ __ := LinearEquiv.piCongrRight fun i ↦ (f i).toLinearEquiv
786758
787759@[simp]
788760theorem piCongrRight_apply (m : (i : ι) → M i) (i : ι) :
@@ -837,8 +809,6 @@ def ofUnit (f : (M →L[R] M)ˣ) : M ≃L[R] M where
837809 show (f.val * f.inv) x = x by
838810 rw [f.val_inv]
839811 simp }
840- continuous_toFun := f.val.continuous
841- continuous_invFun := f.inv.continuous
842812
843813/-- A continuous equivalence from `M` to itself determines an invertible continuous linear map. -/
844814def toUnit (f : M ≃L[R] M) : (M →L[R] M)ˣ where
@@ -946,8 +916,6 @@ variable (R M) in
946916@[simps!]
947917def _root_.Fin.consEquivL : (M 0 × Π i, M (Fin.succ i)) ≃L[R] (Π i, M i) where
948918 __ := Fin.consLinearEquiv R M
949- continuous_toFun := continuous_id.fst.finCons continuous_id.snd
950- continuous_invFun := .prodMk (continuous_apply 0 ) (by fun_prop)
951919
952920/-- `Fin.cons` in the codomain of continuous linear maps. -/
953921abbrev _root_.ContinuousLinearMap.finCons
@@ -971,15 +939,8 @@ variable [IsTopologicalAddGroup M₄]
971939
972940/-- Equivalence given by a block lower diagonal matrix. `e` and `e'` are diagonal square blocks,
973941 and `f` is a rectangular block below the diagonal. -/
974- def skewProd (e : M ≃L[R] M₂) (e' : M₃ ≃L[R] M₄) (f : M →L[R] M₄) : (M × M₃) ≃L[R] M₂ × M₄ :=
975- { e.toLinearEquiv.skewProd e'.toLinearEquiv ↑f with
976- continuous_toFun :=
977- (e.continuous_toFun.comp continuous_fst).prodMk
978- ((e'.continuous_toFun.comp continuous_snd).add <| f.continuous.comp continuous_fst)
979- continuous_invFun :=
980- (e.continuous_invFun.comp continuous_fst).prodMk
981- (e'.continuous_invFun.comp <|
982- continuous_snd.sub <| f.continuous.comp <| e.continuous_invFun.comp continuous_fst) }
942+ def skewProd (e : M ≃L[R] M₂) (e' : M₃ ≃L[R] M₄) (f : M →L[R] M₄) : (M × M₃) ≃L[R] M₂ × M₄ where
943+ __ := e.toLinearEquiv.skewProd e'.toLinearEquiv ↑f
983944
984945@[simp]
985946theorem skewProd_apply (e : M ≃L[R] M₂) (e' : M₃ ≃L[R] M₄) (f : M →L[R] M₄) (x) :
@@ -994,10 +955,8 @@ theorem skewProd_symm_apply (e : M ≃L[R] M₂) (e' : M₃ ≃L[R] M₄) (f : M
994955variable (R) in
995956/-- The negation map as a continuous linear equivalence. -/
996957def neg [ContinuousNeg M] :
997- M ≃L[R] M :=
998- { LinearEquiv.neg R with
999- continuous_toFun := continuous_neg
1000- continuous_invFun := continuous_neg }
958+ M ≃L[R] M where
959+ __ := LinearEquiv.neg R
1001960
1002961@[simp]
1003962theorem coe_neg [ContinuousNeg M] :
@@ -1065,8 +1024,6 @@ def restrictScalars (R : Type*) {S : Type*} {M : Type*}
10651024 [Semiring R] [Semiring S] [AddCommMonoid M] [Module R M] [Module S M] [TopologicalSpace M]
10661025 [LinearMap.CompatibleSMul M M R S] (f : M ≃L[S] M) : M ≃L[R] M where
10671026 toLinearEquiv := f.toLinearEquiv.restrictScalars R
1068- continuous_invFun := f.continuous_invFun
1069- continuous_toFun := f.continuous_toFun
10701027
10711028end RestrictScalars
10721029
0 commit comments