proposition: Lemma biglub_conv_setE p (X Y : neset L) : |_| (X :<| p |>: Y)%:ne = |_| ((fun x => x <|p|> |_| Y) @` X)%:ne.
proof: Proof. transitivity (|_| (\bigcup_(x in X) (x <| p |>: Y))%:ne). by congr (|_| _%:ne); apply neset_ext. rewrite biglub_bigcup //; congr (|_| _%:ne); apply neset_ext => /=. rewrite image_comp; congr image; apply funext => x /=. by rewrite biglub_conv_pt_setD. Qed.
imports: HB(structures) Reals mathcomp(all_ssreflect ssralg ssrnum) mathcomp(mathcomp_extra boolp classical_sets Rstruct reals) mathcomp(finmap) Reals_ext realType_ext classical_sets_ext ssrR fdist fsdist convex