proposition: Lemma amulA x y z : `|x|*|`|y|*|z| | == `| `|x|*|y| |*|z|.
proof: Proof. without loss suffices: x y z / `| `|x|*|y| |*|z| <= `|x|*|`|y|*|z| |. by split=> //; rewrite !(amulC x) -!(amulC z). move=> c [a ltxa [[b ltyb ltz_cab] _]]; have a_gt0: 0 < a := abs_ge0 ltxa. exists (a * b)%R; last by rewrite invfM mulrA. by rewrite (ge0_abs amul_ge0); exists a; rewrite //= mulrC mulKf ?gt_eqF. Qed.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq order) mathcomp(ssralg ssrnum ssrint rat) fourcolor(real) Coq(Setoid Morphisms)