Skip to content

Commit 58ea15c

Browse files
Tragicusaffeldt-aist
authored andcommitted
review
1 parent e820463 commit 58ea15c

3 files changed

Lines changed: 19 additions & 11 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@
7878
+ structure `Norm`
7979
+ lemmas `normMn`, `normN`, `ler_norm_sum`
8080
+ definitions `max_norm`, `max_space`
81-
+ lemmas `max_norm_ge0`, `le_coord_max_norm`, `max_norm0`, `ler_max_normD`,
82-
`max_norm0_eq0`, `max_normZ`, `max_normMn`, `max_normN`
81+
+ lemma `le_coord_max_norm`
8382

8483
- in `normed_module.v`:
8584
+ structure `NormedVector`

classical/unstable.v

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ From mathcomp Require Import vector archimedean interval.
2424
(* the dependent sum *)
2525
(* prodA x := sends (X * Y) * Z to X * (Y * Z) *)
2626
(* prodAr x := sends X * (Y * Z) to (X * Y) * Z *)
27+
(* max_norm x := maximum of the norms of the coordinates of the *)
28+
(* vector x in a given basis. *)
29+
(* max_space V := alias of the vectType V equipped with a *)
30+
(* structure of normed Z-module, where the norm is *)
31+
(* max_norm. *)
2732
(* ``` *)
2833
(* *)
2934
(******************************************************************************)
@@ -594,6 +599,9 @@ Proof. exact: real_ltr_bound. Qed.
594599
Lemma ltrNbound {R : archiRealDomainType} (x : R) : - x < (Num.bound x)%:R.
595600
Proof. exact: real_ltrNbound. Qed.
596601

602+
(* normedZmodType provide norms but the subject is not the norm. We define here
603+
a structure of norm where the subject is the function from the left-module to
604+
its scalar field. *)
597605
Module Norm.
598606

599607
HB.mixin Record isNorm (K : numDomainType) (L : lmodType K) (norm : L -> K) := {
@@ -618,7 +626,7 @@ Lemma normN x : norm (- x) = norm x.
618626
Proof. by rewrite -scaleN1r normZ normrN1 mul1r. Qed.
619627

620628
Lemma ler_norm_sum (I : Type) (r : seq I) (F : I -> L) :
621-
norm (\sum_(i <- r) F i) <= \sum_(i <- r) norm (F i).
629+
norm (\sum_(i <- r) F i) <= \sum_(i <- r) norm (F i).
622630
Proof.
623631
by elim/big_ind2 : _ => *; rewrite ?norm0// (le_trans (ler_normD _ _))// lerD.
624632
Qed.
@@ -642,7 +650,7 @@ Definition max_space : Type := (fun=> V) Bbasis.
642650

643651
HB.instance Definition _ := Vector.on max_space.
644652

645-
Lemma max_norm_ge0 x : 0 <= max_norm x.
653+
Let max_norm_ge0 x : 0 <= max_norm x.
646654
Proof.
647655
rewrite /max_norm.
648656
by elim/big_ind : _ => //= ? ? ? ?; rewrite /Order.max; case: ifP.
@@ -659,7 +667,7 @@ have /comparable_leNgt <- := real_comparable bR (normr_real (coord B j x)).
659667
by move=> /(le_trans IHl).
660668
Qed.
661669

662-
Lemma max_norm0 : max_norm 0 = 0.
670+
Let max_norm0 : max_norm 0 = 0.
663671
Proof.
664672
apply: le_anti; rewrite max_norm_ge0 andbT.
665673
apply: bigmax_le => // i _.
@@ -669,21 +677,21 @@ have <-: \sum_(i < \dim V') 0 *: B`_i = 0.
669677
by rewrite coord_sum_free ?normr0// (basis_free Bbasis).
670678
Qed.
671679

672-
Lemma ler_max_normD x y : max_norm (x + y) <= max_norm x + max_norm y.
680+
Let ler_max_normD x y : max_norm (x + y) <= max_norm x + max_norm y.
673681
Proof.
674682
apply: bigmax_le => [|/= i _]; first by rewrite addr_ge0// max_norm_ge0.
675683
by rewrite raddfD/= (le_trans (ler_normD _ _))// lerD// le_coord_max_norm.
676684
Qed.
677685

678-
Lemma max_norm0_eq0 x : max_norm x = 0 -> x = 0.
686+
Let max_norm0_eq0 x : max_norm x = 0 -> x = 0.
679687
Proof.
680688
move=> x0; rewrite (coord_basis Bbasis (memvf x)).
681689
suff: forall i, coord B i x = 0.
682690
by move=> {}x0; rewrite big1//= => j _; rewrite x0 scale0r.
683691
by move=> i; apply/normr0_eq0/le_anti; rewrite normr_ge0 -x0 le_coord_max_norm.
684692
Qed.
685693

686-
Lemma max_normZ r x : max_norm (r *: x) = `|r| * max_norm x.
694+
Let max_normZ r x : max_norm (r *: x) = `|r| * max_norm x.
687695
Proof.
688696
rewrite /max_norm.
689697
under eq_bigr do rewrite linearZ/= normrM.
@@ -694,10 +702,10 @@ Qed.
694702
HB.instance Definition _ := Norm.isNorm.Build K V max_norm
695703
max_norm0 max_norm_ge0 max_norm0_eq0 ler_max_normD max_normZ.
696704

697-
Lemma max_normMn x n : max_norm (x *+ n) = max_norm x *+ n.
705+
Let max_normMn x n : max_norm (x *+ n) = max_norm x *+ n.
698706
Proof. exact: Norm.Theory.normMn. Qed.
699707

700-
Lemma max_normN x : max_norm (- x) = max_norm x.
708+
Let max_normN x : max_norm (- x) = max_norm x.
701709
Proof. exact: Norm.Theory.normN. Qed.
702710

703711
HB.instance Definition _ := Num.Zmodule_isNormed.Build K

theories/normedtype_theory/normed_module.v

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2472,7 +2472,8 @@ HB.instance Definition _ :=
24722472
HB.instance Definition _ := NormedZmod_PseudoMetric_eq.Build R (max_space Bbasis) erefl.
24732473

24742474
HB.instance Definition _ :=
2475-
PseudoMetricNormedZmod_Lmodule_isNormedModule.Build R (max_space Bbasis) (max_normZ B).
2475+
PseudoMetricNormedZmod_Lmodule_isNormedModule.Build R (max_space Bbasis)
2476+
(@Norm.normZ _ _ (unstable_max_norm__canonical__Norm_Norm Bbasis)).
24762477

24772478
End InfiniteNorm.
24782479

0 commit comments

Comments
 (0)