(* ========================================================================= *) (* Minkowski's convex body theorem. *) (* ========================================================================= *) needs "Multivariate/measure.ml";; (* ------------------------------------------------------------------------- *) (* An ad hoc lemma. *) (* ------------------------------------------------------------------------- *)(* ------------------------------------------------------------------------- *) (* This is also interesting, and Minkowski follows easily from it. *) (* ------------------------------------------------------------------------- *) (* ------------------------------------------------------------------------- *) (* The usual form of the theorem. *) (* ------------------------------------------------------------------------- *) (* ------------------------------------------------------------------------- *) (* A slightly sharper variant for use when the set is also closed. *) (* ------------------------------------------------------------------------- *)let LEMMA =prove (`!f:real^N->bool t s:real^N->bool. FINITE { u | u IN f /\ ~(t u = {})} /\ measurable s /\ &1 < measure s /\ (!u. u IN f ==> measurable(t u)) /\ s SUBSET UNIONS (IMAGE t f) /\ (!u v. u IN f /\ v IN f /\ ~(u = v) ==> DISJOINT (t u) (t v)) /\ (!u. u IN f ==> (IMAGE (\x. x - u) (t u)) SUBSET interval[vec 0,vec 1]) ==> ?u v. u IN f /\ v IN f /\ ~(u = v) /\ ~(DISJOINT (IMAGE (\x. x - u) (t u)) (IMAGE (\x. x - v) (t v)))`,