@@ -281,40 +281,19 @@ Section norm_row_mx.
281281Context {K : realDomainType} {m n1 n2 : nat}.
282282Implicit Types (M : 'M[K]_(m, n1)) (N : 'M[K]_(m, n2)).
283283
284- Lemma norm_row_mx0r M : `|row_mx M (0 : 'M_(m, n2)) | = `|M|.
284+ Lemma norm_row_mx M N : `|row_mx M N | = Num.max `|M| `|N |.
285285Proof .
286286rewrite /Num.norm/= !mx_normrE.
287287rewrite -!(pair_bigA_idem _ (fun i j => `|_ i j|))/= ?maxxx//.
288- apply: eq_bigr => i _.
289- have ? := maxxx (0 : K).
290- rewrite big_split_ord_idem//= [X in maxr _ X = _]big1_idem//=.
291- by move=> ? _; rewrite row_mxEr mxE normr0.
292- by rewrite -bigmax_idr; apply: eq_bigr => j _; rewrite row_mxEl.
288+ rewrite -big_split_idem/= ?maxxx//; apply: eq_bigr => i _.
289+ rewrite big_split_ord_idem/= ?maxxx//=.
290+ by congr maxr; apply: eq_bigr => j _; [rewrite row_mxEl|rewrite row_mxEr].
293291Qed .
294292
295- Lemma norm_row_mx0l N : `|row_mx (0 : 'M_(m, n1)) N| = `|N|.
296- Proof .
297- rewrite /Num.norm/= !mx_normrE.
298- rewrite -!(pair_bigA_idem _ (fun i j => `|_ i j|))/= ?maxxx//.
299- apply: eq_bigr => i _.
300- have ? := maxxx (0 : K).
301- rewrite big_split_ord_idem//= [X in maxr X _ = _]big1_idem//=.
302- by move=> ? _; rewrite row_mxEl mxE normr0.
303- by rewrite -bigmax_idl; apply: eq_bigr => j _; rewrite row_mxEr.
304- Qed .
293+ Lemma norm_row_mx0r M : `|row_mx M (0 : 'M_(m, n2))| = `|M|.
294+ Proof . by rewrite norm_row_mx normr0; exact/max_idPl. Qed .
305295
306- Lemma norm_row_mx M N : `|row_mx M N| = Num.max `|M| `|N|.
307- Proof .
308- apply/eqP; rewrite eq_le; apply/andP; split.
309- - rewrite [leLHS]/Num.norm/= !mx_normrE bigmax_le//= => -[i j] _/=.
310- rewrite le_max mxE; case: splitP => k kE.
311- + by rewrite [in `|M|]/Num.norm/= !mx_normrE (le_bigmax _ _ (i, k)).
312- + by rewrite [in `|N|]/Num.norm/= !mx_normrE (le_bigmax _ _ (i, k)) ?orbT.
313- - rewrite ge_max; apply/andP; split;
314- rewrite [leLHS]/Num.norm/= !mx_normrE bigmax_le//= => -[i j] _/=;
315- rewrite [leRHS]/Num.norm/= !mx_normrE.
316- + by rewrite -(row_mxEl _ N)/= (le_bigmax _ _ (i, lshift n2 j)).
317- + by rewrite -(row_mxEr M)/= (le_bigmax _ _ (i, rshift n1 j)).
318- Qed .
296+ Lemma norm_row_mx0l N : `|row_mx (0 : 'M_(m, n1)) N| = `|N|.
297+ Proof . by rewrite norm_row_mx normr0; exact/max_idPr. Qed .
319298
320299End norm_row_mx.
0 commit comments