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

Commit cc7627a

Browse files
ocfnasheric-wieser
andcommitted
feat(analysis/normed_space/basic): define normed_group structure induced by injective group homomorphism (#8443)
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
1 parent 1b0391a commit cc7627a

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

src/analysis/normed_space/basic.lean

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -590,12 +590,20 @@ lemma antilipschitz_with.add_sub_lipschitz_with {α : Type*} [pseudo_metric_spac
590590
(hK : Kg < Kf⁻¹) : antilipschitz_with (Kf⁻¹ - Kg)⁻¹ g :=
591591
by simpa only [pi.sub_apply, add_sub_cancel'_right] using hf.add_lipschitz_with hg hK
592592

593+
/-- A group homomorphism from an `add_comm_group` to a `semi_normed_group` induces a
594+
`semi_normed_group` structure on the domain.
595+
596+
See note [reducible non-instances] -/
597+
@[reducible]
598+
def semi_normed_group.induced [add_comm_group γ] (f : γ →+ α) : semi_normed_group γ :=
599+
{ norm := λ x, ∥f x∥,
600+
dist_eq := λ x y, by simpa only [add_monoid_hom.map_sub, ← dist_eq_norm],
601+
.. pseudo_metric_space.induced f semi_normed_group.to_pseudo_metric_space, }
602+
593603
/-- A subgroup of a seminormed group is also a seminormed group,
594604
with the restriction of the norm. -/
595-
instance add_subgroup.semi_normed_group {E : Type*} [semi_normed_group E] (s : add_subgroup E) :
596-
semi_normed_group s :=
597-
{ norm := λx, norm (x : E),
598-
dist_eq := λx y, dist_eq_norm (x : E) (y : E) }
605+
instance add_subgroup.semi_normed_group (s : add_subgroup α) : semi_normed_group s :=
606+
semi_normed_group.induced s.subtype
599607

600608
/-- If `x` is an element of a subgroup `s` of a seminormed group `E`, its norm in `s` is equal to
601609
its norm in `E`. -/
@@ -905,10 +913,19 @@ end
905913
@[simp] lemma nnnorm_eq_zero {a : α} : ∥a∥₊ = 0 ↔ a = 0 :=
906914
by simp only [nnreal.eq_iff.symm, nnreal.coe_zero, coe_nnnorm, norm_eq_zero]
907915

916+
/-- An injective group homomorphism from an `add_comm_group` to a `normed_group` induces a
917+
`normed_group` structure on the domain.
918+
919+
See note [reducible non-instances]. -/
920+
@[reducible]
921+
def normed_group.induced [add_comm_group γ]
922+
(f : γ →+ α) (h : function.injective f) : normed_group γ :=
923+
{ .. semi_normed_group.induced f,
924+
.. metric_space.induced f h normed_group.to_metric_space, }
925+
908926
/-- A subgroup of a normed group is also a normed group, with the restriction of the norm. -/
909-
instance add_subgroup.normed_group {E : Type*} [normed_group E] (s : add_subgroup E) :
910-
normed_group s :=
911-
{ ..add_subgroup.semi_normed_group s }
927+
instance add_subgroup.normed_group (s : add_subgroup α) : normed_group s :=
928+
normed_group.induced s.subtype subtype.coe_injective
912929

913930
/-- A submodule of a normed group is also a normed group, with the restriction of the norm.
914931

0 commit comments

Comments
 (0)