proposition: Lemma subspace_pm_ball_triangle x y z e1 e2 : subspace_ball x e1 y -> subspace_ball y e2 z -> subspace_ball x (e1 + e2) z.
proof: Proof. rewrite /subspace_ball; (repeat case: ifP => /asboolP). - by move=>?? [??] [??]; split => //=; apply: ball_triangle; eauto. - by move=> ?? [??] ->. - by move=> + /[swap] => /[swap] => ->. - by move=> _ _ -> ->. Qed.
imports: HB(structures) mathcomp(all_ssreflect all_algebra finmap generic_quotient) mathcomp(boolp classical_sets functions) mathcomp(cardinality mathcomp_extra fsbigop) reals signed