analysis.convex.jensen
β·
Mathlib.Analysis.Convex.Jensen
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -123,7 +123,7 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
by
set y := t.center_mass w p
rsuffices β¨i, hi, hfiβ© : β i β t.filter fun i => w i β 0, w i β’ f y β€ w i β’ (f β p) i
- Β· rw [mem_filter] at hi
+ Β· rw [mem_filter] at hi
exact β¨i, hi.1, (smul_le_smul_iff_of_pos_left <| (hwβ i hi.1).lt_of_ne hi.2.symm).1 hfiβ©
have hw' : (0 : π) < β i in Filter (fun i => w i β 0) t, w i := by rwa [sum_filter_ne_zero]
refine' exists_le_of_sum_le (nonempty_of_sum_ne_zero hw'.ne') _
@@ -149,7 +149,7 @@ then the eventual maximum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
(hx : x β convexHull π s) : β y β s, f x β€ f y :=
by
- rw [_root_.convex_hull_eq] at hx
+ rw [_root_.convex_hull_eq] at hx
obtain β¨Ξ±, t, w, p, hwβ, hwβ, hp, rflβ© := hx
rcases hf.exists_ge_of_center_mass hwβ (hwβ.symm βΈ zero_lt_one) fun i hi =>
subset_convexHull π s (hp i hi) with
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -124,10 +124,10 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
set y := t.center_mass w p
rsuffices β¨i, hi, hfiβ© : β i β t.filter fun i => w i β 0, w i β’ f y β€ w i β’ (f β p) i
Β· rw [mem_filter] at hi
- exact β¨i, hi.1, (smul_le_smul_iff_of_pos <| (hwβ i hi.1).lt_of_ne hi.2.symm).1 hfiβ©
+ exact β¨i, hi.1, (smul_le_smul_iff_of_pos_left <| (hwβ i hi.1).lt_of_ne hi.2.symm).1 hfiβ©
have hw' : (0 : π) < β i in Filter (fun i => w i β 0) t, w i := by rwa [sum_filter_ne_zero]
refine' exists_le_of_sum_le (nonempty_of_sum_ne_zero hw'.ne') _
- rw [β sum_smul, β smul_le_smul_iff_of_pos (inv_pos.2 hw'), inv_smul_smulβ hw'.ne', β
+ rw [β sum_smul, β smul_le_smul_iff_of_pos_left (inv_pos.2 hw'), inv_smul_smulβ hw'.ne', β
Finset.centerMass, Finset.centerMass_filter_ne_zero]
exact h.map_center_mass_le hwβ hwβ hp
infer_instance
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2019 Alexander Bentkamp. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, Yury Kudriashov
-/
-import Mathbin.Analysis.Convex.Combination
-import Mathbin.Analysis.Convex.Function
+import Analysis.Convex.Combination
+import Analysis.Convex.Function
#align_import analysis.convex.jensen from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2019 Alexander Bentkamp. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, Yury Kudriashov
-
-! This file was ported from Lean 3 source module analysis.convex.jensen
-! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Convex.Combination
import Mathbin.Analysis.Convex.Function
+#align_import analysis.convex.jensen from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
+
/-!
# Jensen's inequality and maximum principle for convex functions
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -48,6 +48,7 @@ section Jensen
variable [LinearOrderedField π] [AddCommGroup E] [OrderedAddCommGroup Ξ²] [Module π E] [Module π Ξ²]
[OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
+#print ConvexOn.map_centerMass_le /-
/-- Convex **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
@@ -58,26 +59,33 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
convert (hf.convex_epigraph.center_mass_mem hβ hβ hmem').2 <;>
simp only [center_mass, Function.comp, Prod.smul_fst, Prod.fst_sum, Prod.smul_snd, Prod.snd_sum]
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
+-/
+#print ConcaveOn.le_map_centerMass /-
/-- Concave **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
t.centerMass w (f β p) β€ f (t.centerMass w p) :=
@ConvexOn.map_centerMass_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
+-/
+#print ConvexOn.map_sum_le /-
/-- Convex **Jensen's inequality**, `finset.sum` version. -/
theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : β i in t, w i = 1)
(hmem : β i β t, p i β s) : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i) := by
simpa only [center_mass, hβ, inv_one, one_smul] using
hf.map_center_mass_le hβ (hβ.symm βΈ zero_lt_one) hmem
#align convex_on.map_sum_le ConvexOn.map_sum_le
+-/
+#print ConcaveOn.le_map_sum /-
/-- Concave **Jensen's inequality**, `finset.sum` version. -/
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : β i in t, w i = 1)
(hmem : β i β t, p i β s) : β i in t, w i β’ f (p i) β€ f (β i in t, w i β’ p i) :=
@ConvexOn.map_sum_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
#align concave_on.le_map_sum ConcaveOn.le_map_sum
+-/
end Jensen
@@ -90,6 +98,7 @@ variable [LinearOrderedField π] [AddCommGroup E] [LinearOrderedAddCommGroup
[Module π Ξ²] [OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
{x : E}
+#print le_sup_of_mem_convexHull /-
theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
f x β€ s.sup' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f :=
@@ -99,13 +108,17 @@ theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull
(hf.map_center_mass_le hwβ (by positivity) <| subset_convexHull _ _).trans
(center_mass_le_sup hwβ <| by positivity)
#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHull
+-/
+#print inf_le_of_mem_convexHull /-
theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
s.inf' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f β€ f x :=
le_sup_of_mem_convexHull hf.dual hx
#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHull
+-/
+#print ConvexOn.exists_ge_of_centerMass /-
/-- If a function `f` is convex on `s`, then the value it takes at some center of mass of points of
`s` is less than the value it takes on one of those points. -/
theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i β t, 0 β€ w i)
@@ -122,14 +135,18 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
exact h.map_center_mass_le hwβ hwβ hp
infer_instance
#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMass
+-/
+#print ConcaveOn.exists_le_of_centerMass /-
/-- If a function `f` is concave on `s`, then the value it takes at some center of mass of points of
`s` is greater than the value it takes on one of those points. -/
theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β i β t, 0 β€ w i)
(hwβ : 0 < β i in t, w i) (hp : β i β t, p i β s) : β i β t, f (p i) β€ f (t.centerMass w p) :=
@ConvexOn.exists_ge_of_centerMass π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ h hwβ hwβ hp
#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMass
+-/
+#print ConvexOn.exists_ge_of_mem_convexHull /-
/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
then the eventual maximum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
@@ -142,13 +159,16 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
β¨i, hit, Hiβ©
exact β¨p i, hp i hit, Hiβ©
#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHull
+-/
+#print ConcaveOn.exists_le_of_mem_convexHull /-
/-- Minimum principle for concave functions. If a function `f` is concave on the convex hull of `s`,
then the eventual minimum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConcaveOn.exists_le_of_mem_convexHull (hf : ConcaveOn π (convexHull π s) f) {x}
(hx : x β convexHull π s) : β y β s, f y β€ f x :=
@ConvexOn.exists_ge_of_mem_convexHull π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ hf _ hx
#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHull
+-/
end MaximumPrinciple
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -67,16 +67,15 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
/-- Convex **Jensen's inequality**, `finset.sum` version. -/
-theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : (β i in t, w i) = 1)
+theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : β i in t, w i = 1)
(hmem : β i β t, p i β s) : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i) := by
simpa only [center_mass, hβ, inv_one, one_smul] using
hf.map_center_mass_le hβ (hβ.symm βΈ zero_lt_one) hmem
#align convex_on.map_sum_le ConvexOn.map_sum_le
/-- Concave **Jensen's inequality**, `finset.sum` version. -/
-theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
- (hβ : (β i in t, w i) = 1) (hmem : β i β t, p i β s) :
- (β i in t, w i β’ f (p i)) β€ f (β i in t, w i β’ p i) :=
+theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : β i in t, w i = 1)
+ (hmem : β i β t, p i β s) : β i in t, w i β’ f (p i) β€ f (β i in t, w i β’ p i) :=
@ConvexOn.map_sum_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
#align concave_on.le_map_sum ConcaveOn.le_map_sum
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -53,9 +53,9 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
f (t.centerMass w p) β€ t.centerMass w (f β p) :=
by
- have hmem' : β i β t, (p i, (f β p) i) β { p : E Γ Ξ² | p.1 β s β§ f p.1 β€ p.2 } := fun i hi =>
+ have hmem' : β i β t, (p i, (f β p) i) β {p : E Γ Ξ² | p.1 β s β§ f p.1 β€ p.2} := fun i hi =>
β¨hmem i hi, le_rflβ©
- convert(hf.convex_epigraph.center_mass_mem hβ hβ hmem').2 <;>
+ convert (hf.convex_epigraph.center_mass_mem hβ hβ hmem').2 <;>
simp only [center_mass, Function.comp, Prod.smul_fst, Prod.fst_sum, Prod.smul_snd, Prod.snd_sum]
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -114,7 +114,7 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
by
set y := t.center_mass w p
rsuffices β¨i, hi, hfiβ© : β i β t.filter fun i => w i β 0, w i β’ f y β€ w i β’ (f β p) i
- Β· rw [mem_filter] at hi
+ Β· rw [mem_filter] at hi
exact β¨i, hi.1, (smul_le_smul_iff_of_pos <| (hwβ i hi.1).lt_of_ne hi.2.symm).1 hfiβ©
have hw' : (0 : π) < β i in Filter (fun i => w i β 0) t, w i := by rwa [sum_filter_ne_zero]
refine' exists_le_of_sum_le (nonempty_of_sum_ne_zero hw'.ne') _
@@ -136,7 +136,7 @@ then the eventual maximum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
(hx : x β convexHull π s) : β y β s, f x β€ f y :=
by
- rw [_root_.convex_hull_eq] at hx
+ rw [_root_.convex_hull_eq] at hx
obtain β¨Ξ±, t, w, p, hwβ, hwβ, hp, rflβ© := hx
rcases hf.exists_ge_of_center_mass hwβ (hwβ.symm βΈ zero_lt_one) fun i hi =>
subset_convexHull π s (hp i hi) with
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -36,7 +36,7 @@ As corollaries, we get:
open Finset LinearMap Set
-open BigOperators Classical Convex Pointwise
+open scoped BigOperators Classical Convex Pointwise
variable {π E F Ξ² ΞΉ : Type _}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -48,9 +48,6 @@ section Jensen
variable [LinearOrderedField π] [AddCommGroup E] [OrderedAddCommGroup Ξ²] [Module π E] [Module π Ξ²]
[OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
-/- warning: convex_on.map_center_mass_le -> ConvexOn.map_centerMass_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.map_center_mass_le ConvexOn.map_centerMass_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
@@ -62,9 +59,6 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
simp only [center_mass, Function.comp, Prod.smul_fst, Prod.fst_sum, Prod.smul_snd, Prod.snd_sum]
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
-/- warning: concave_on.le_map_center_mass -> ConcaveOn.le_map_centerMass is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMassβ'. -/
/-- Concave **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
@@ -72,9 +66,6 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
@ConvexOn.map_centerMass_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
-/- warning: convex_on.map_sum_le -> ConvexOn.map_sum_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.map_sum_le ConvexOn.map_sum_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.sum` version. -/
theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : (β i in t, w i) = 1)
(hmem : β i β t, p i β s) : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i) := by
@@ -82,9 +73,6 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
hf.map_center_mass_le hβ (hβ.symm βΈ zero_lt_one) hmem
#align convex_on.map_sum_le ConvexOn.map_sum_le
-/- warning: concave_on.le_map_sum -> ConcaveOn.le_map_sum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.le_map_sum ConcaveOn.le_map_sumβ'. -/
/-- Concave **Jensen's inequality**, `finset.sum` version. -/
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : (β i in t, w i) = 1) (hmem : β i β t, p i β s) :
@@ -103,9 +91,6 @@ variable [LinearOrderedField π] [AddCommGroup E] [LinearOrderedAddCommGroup
[Module π Ξ²] [OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
{x : E}
-/- warning: le_sup_of_mem_convex_hull -> le_sup_of_mem_convexHull is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHullβ'. -/
theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
f x β€ s.sup' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f :=
@@ -116,18 +101,12 @@ theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull
(center_mass_le_sup hwβ <| by positivity)
#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHull
-/- warning: inf_le_of_mem_convex_hull -> inf_le_of_mem_convexHull is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHullβ'. -/
theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
s.inf' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f β€ f x :=
le_sup_of_mem_convexHull hf.dual hx
#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHull
-/- warning: convex_on.exists_ge_of_center_mass -> ConvexOn.exists_ge_of_centerMass is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMassβ'. -/
/-- If a function `f` is convex on `s`, then the value it takes at some center of mass of points of
`s` is less than the value it takes on one of those points. -/
theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i β t, 0 β€ w i)
@@ -145,9 +124,6 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
infer_instance
#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMass
-/- warning: concave_on.exists_le_of_center_mass -> ConcaveOn.exists_le_of_centerMass is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMassβ'. -/
/-- If a function `f` is concave on `s`, then the value it takes at some center of mass of points of
`s` is greater than the value it takes on one of those points. -/
theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β i β t, 0 β€ w i)
@@ -155,9 +131,6 @@ theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β
@ConvexOn.exists_ge_of_centerMass π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ h hwβ hwβ hp
#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMass
-/- warning: convex_on.exists_ge_of_mem_convex_hull -> ConvexOn.exists_ge_of_mem_convexHull is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHullβ'. -/
/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
then the eventual maximum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
@@ -171,9 +144,6 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
exact β¨p i, hp i hit, Hiβ©
#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHull
-/- warning: concave_on.exists_le_of_mem_convex_hull -> ConcaveOn.exists_le_of_mem_convexHull is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHullβ'. -/
/-- Minimum principle for concave functions. If a function `f` is concave on the convex hull of `s`,
then the eventual minimum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConcaveOn.exists_le_of_mem_convexHull (hf : ConcaveOn π (convexHull π s) f) {x}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -49,10 +49,7 @@ variable [LinearOrderedField π] [AddCommGroup E] [OrderedAddCommGroup Ξ²] [Mo
[OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
/- warning: convex_on.map_center_mass_le -> ConvexOn.map_centerMass_le is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)))
-but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u4, u2, u1} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u1, succ u3, succ u2} ΞΉ E Ξ² f p)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.map_center_mass_le ConvexOn.map_centerMass_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i)
@@ -66,10 +63,7 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
/- warning: concave_on.le_map_center_mass -> ConcaveOn.le_map_centerMass is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
-but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.centerMass.{u4, u2, u1} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u1, succ u3, succ u2} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMassβ'. -/
/-- Concave **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
@@ -79,10 +73,7 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
/- warning: convex_on.map_sum_le -> ConvexOn.map_sum_le is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))))
-but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (Semiring.toOne.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.map_sum_le ConvexOn.map_sum_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.sum` version. -/
theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : (β i in t, w i) = 1)
@@ -92,10 +83,7 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
#align convex_on.map_sum_le ConvexOn.map_sum_le
/- warning: concave_on.le_map_sum -> ConcaveOn.le_map_sum is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))))
-but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (Semiring.toOne.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.le_map_sum ConcaveOn.le_map_sumβ'. -/
/-- Concave **Jensen's inequality**, `finset.sum` version. -/
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
@@ -116,10 +104,7 @@ variable [LinearOrderedField π] [AddCommGroup E] [LinearOrderedAddCommGroup
{x : E}
/- warning: le_sup_of_mem_convex_hull -> le_sup_of_mem_convexHull is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (Finset.sup'.{u3, u2} Ξ² E (Lattice.toSemilatticeSup.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u3}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u2, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u3} E}, (ConvexOn.{u2, u3, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u2, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u3} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u3} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π Ξ² (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s)) f) -> (forall (hx : Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))), LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f x) (Finset.sup'.{u1, u3} Ξ² E (Lattice.toSemilatticeSup.{u1} Ξ² (DistribLattice.toLattice.{u1} Ξ² (instDistribLattice.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u1} Ξ² _inst_3)))) s (Iff.mp (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (Finset.Nonempty.{u3} E s) (Finset.coe_nonempty.{u3} E s) (Iff.mp (Set.Nonempty.{u3} E (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (convexHull_nonempty_iff.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (Finset.toSet.{u3} E s)) (Exists.intro.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) x hx))) f))
+<too large>
Case conversion may be inaccurate. Consider using '#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHullβ'. -/
theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
@@ -132,10 +117,7 @@ theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull
#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHull
/- warning: inf_le_of_mem_convex_hull -> inf_le_of_mem_convexHull is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (Finset.inf'.{u3, u2} Ξ² E (Lattice.toSemilatticeInf.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f) (f x))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u3}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u2, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u3} E}, (ConcaveOn.{u2, u3, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u2, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u3} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u3} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π Ξ² (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s)) f) -> (forall (hx : Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))), LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (Finset.inf'.{u1, u3} Ξ² E (Lattice.toSemilatticeInf.{u1} Ξ² (DistribLattice.toLattice.{u1} Ξ² (instDistribLattice.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u1} Ξ² _inst_3)))) s (Iff.mp (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (Finset.Nonempty.{u3} E s) (Finset.coe_nonempty.{u3} E s) (Iff.mp (Set.Nonempty.{u3} E (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (convexHull_nonempty_iff.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (Finset.toSet.{u3} E s)) (Exists.intro.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) x hx))) f) (f x))
+<too large>
Case conversion may be inaccurate. Consider using '#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHullβ'. -/
theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
@@ -144,10 +126,7 @@ theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull
#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHull
/- warning: convex_on.exists_ge_of_center_mass -> ConvexOn.exists_ge_of_centerMass is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
-but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (Exists.{succ u1} ΞΉ (fun (i : ΞΉ) => And (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3)))) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMassβ'. -/
/-- If a function `f` is convex on `s`, then the value it takes at some center of mass of points of
`s` is less than the value it takes on one of those points. -/
@@ -167,10 +146,7 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMass
/- warning: concave_on.exists_le_of_center_mass -> ConcaveOn.exists_le_of_centerMass is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
-but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (Exists.{succ u1} ΞΉ (fun (i : ΞΉ) => And (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMassβ'. -/
/-- If a function `f` is concave on `s`, then the value it takes at some center of mass of points of
`s` is greater than the value it takes on one of those points. -/
@@ -180,10 +156,7 @@ theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β
#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMass
/- warning: convex_on.exists_ge_of_mem_convex_hull -> ConvexOn.exists_ge_of_mem_convexHull is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (f y)))))
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u3, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u3, u2, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π Ξ² (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s) f) -> (forall {x : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) -> (Exists.{succ u2} E (fun (y : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) (LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f x) (f y)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHullβ'. -/
/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
then the eventual maximum of `f` on `convex_hull π s` lies in `s`. -/
@@ -199,10 +172,7 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHull
/- warning: concave_on.exists_le_of_mem_convex_hull -> ConcaveOn.exists_le_of_mem_convexHull is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f y) (f x)))))
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u3, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u3, u2, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π Ξ² (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s) f) -> (forall {x : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) -> (Exists.{succ u2} E (fun (y : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) (LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f y) (f x)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHullβ'. -/
/-- Minimum principle for concave functions. If a function `f` is concave on the convex hull of `s`,
then the eventual minimum of `f` on `convex_hull π s` lies in `s`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -50,7 +50,7 @@ variable [LinearOrderedField π] [AddCommGroup E] [OrderedAddCommGroup Ξ²] [Mo
/- warning: convex_on.map_center_mass_le -> ConvexOn.map_centerMass_le is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)))
but is expected to have type
forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u4, u2, u1} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u1, succ u3, succ u2} ΞΉ E Ξ² f p)))
Case conversion may be inaccurate. Consider using '#align convex_on.map_center_mass_le ConvexOn.map_centerMass_leβ'. -/
@@ -67,7 +67,7 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
/- warning: concave_on.le_map_center_mass -> ConcaveOn.le_map_centerMass is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
but is expected to have type
forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.centerMass.{u4, u2, u1} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u1, succ u3, succ u2} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
Case conversion may be inaccurate. Consider using '#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMassβ'. -/
@@ -80,7 +80,7 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
/- warning: convex_on.map_sum_le -> ConvexOn.map_sum_le is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))))
but is expected to have type
forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (Semiring.toOne.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))))
Case conversion may be inaccurate. Consider using '#align convex_on.map_sum_le ConvexOn.map_sum_leβ'. -/
@@ -93,7 +93,7 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
/- warning: concave_on.le_map_sum -> ConcaveOn.le_map_sum is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))))
but is expected to have type
forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (Semiring.toOne.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))))
Case conversion may be inaccurate. Consider using '#align concave_on.le_map_sum ConcaveOn.le_map_sumβ'. -/
@@ -117,7 +117,7 @@ variable [LinearOrderedField π] [AddCommGroup E] [LinearOrderedAddCommGroup
/- warning: le_sup_of_mem_convex_hull -> le_sup_of_mem_convexHull is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (Finset.sup'.{u3, u2} Ξ² E (Lattice.toSemilatticeSup.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (Finset.sup'.{u3, u2} Ξ² E (Lattice.toSemilatticeSup.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u3}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u2, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u3} E}, (ConvexOn.{u2, u3, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u2, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u3} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u3} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π Ξ² (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s)) f) -> (forall (hx : Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))), LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f x) (Finset.sup'.{u1, u3} Ξ² E (Lattice.toSemilatticeSup.{u1} Ξ² (DistribLattice.toLattice.{u1} Ξ² (instDistribLattice.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u1} Ξ² _inst_3)))) s (Iff.mp (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (Finset.Nonempty.{u3} E s) (Finset.coe_nonempty.{u3} E s) (Iff.mp (Set.Nonempty.{u3} E (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (convexHull_nonempty_iff.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (Finset.toSet.{u3} E s)) (Exists.intro.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) x hx))) f))
Case conversion may be inaccurate. Consider using '#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHullβ'. -/
@@ -133,7 +133,7 @@ theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull
/- warning: inf_le_of_mem_convex_hull -> inf_le_of_mem_convexHull is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (Finset.inf'.{u3, u2} Ξ² E (Lattice.toSemilatticeInf.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f) (f x))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (Finset.inf'.{u3, u2} Ξ² E (Lattice.toSemilatticeInf.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f) (f x))
but is expected to have type
forall {π : Type.{u2}} {E : Type.{u3}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u2, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u3} E}, (ConcaveOn.{u2, u3, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u2, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u3} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u3} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π Ξ² (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s)) f) -> (forall (hx : Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))), LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (Finset.inf'.{u1, u3} Ξ² E (Lattice.toSemilatticeInf.{u1} Ξ² (DistribLattice.toLattice.{u1} Ξ² (instDistribLattice.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u1} Ξ² _inst_3)))) s (Iff.mp (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (Finset.Nonempty.{u3} E s) (Finset.coe_nonempty.{u3} E s) (Iff.mp (Set.Nonempty.{u3} E (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (convexHull_nonempty_iff.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (Finset.toSet.{u3} E s)) (Exists.intro.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) x hx))) f) (f x))
Case conversion may be inaccurate. Consider using '#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHullβ'. -/
@@ -145,7 +145,7 @@ theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull
/- warning: convex_on.exists_ge_of_center_mass -> ConvexOn.exists_ge_of_centerMass is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
but is expected to have type
forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (Exists.{succ u1} ΞΉ (fun (i : ΞΉ) => And (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3)))) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMassβ'. -/
@@ -168,7 +168,7 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
/- warning: concave_on.exists_le_of_center_mass -> ConcaveOn.exists_le_of_centerMass is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toHasLe.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toHasLt.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
but is expected to have type
forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (Exists.{succ u1} ΞΉ (fun (i : ΞΉ) => And (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMassβ'. -/
@@ -181,7 +181,7 @@ theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β
/- warning: convex_on.exists_ge_of_mem_convex_hull -> ConvexOn.exists_ge_of_mem_convexHull is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (f y)))))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (f y)))))
but is expected to have type
forall {π : Type.{u3}} {E : Type.{u2}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u3, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u3, u2, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π Ξ² (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s) f) -> (forall {x : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) -> (Exists.{succ u2} E (fun (y : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) (LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f x) (f y)))))
Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHullβ'. -/
@@ -200,7 +200,7 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
/- warning: concave_on.exists_le_of_mem_convex_hull -> ConcaveOn.exists_le_of_mem_convexHull is a dubious translation:
lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f y) (f x)))))
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toHasLe.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f y) (f x)))))
but is expected to have type
forall {π : Type.{u3}} {E : Type.{u2}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u3, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u3, u2, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π Ξ² (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s) f) -> (forall {x : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) -> (Exists.{succ u2} E (fun (y : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) (LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f y) (f x)))))
Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHullβ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -82,7 +82,7 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
lean 3 declaration is
forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))))
but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (NonAssocRing.toOne.{u4} π (Ring.toNonAssocRing.{u4} π (StrictOrderedRing.toRing.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))))
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (Semiring.toOne.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))))
Case conversion may be inaccurate. Consider using '#align convex_on.map_sum_le ConvexOn.map_sum_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.sum` version. -/
theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : (β i in t, w i) = 1)
@@ -95,7 +95,7 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
lean 3 declaration is
forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))))
but is expected to have type
- forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (NonAssocRing.toOne.{u4} π (Ring.toNonAssocRing.{u4} π (StrictOrderedRing.toRing.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))))
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (Semiring.toOne.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))))
Case conversion may be inaccurate. Consider using '#align concave_on.le_map_sum ConcaveOn.le_map_sumβ'. -/
/-- Concave **Jensen's inequality**, `finset.sum` version. -/
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
mathlib commit https://github.com/leanprover-community/mathlib/commit/fa78268d4d77cb2b2fbc89f0527e2e7807763780
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, Yury Kudriashov
! This file was ported from Lean 3 source module analysis.convex.jensen
-! leanprover-community/mathlib commit bfad3f455b388fbcc14c49d0cac884f774f14d20
+! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.Convex.Function
/-!
# Jensen's inequality and maximum principle for convex functions
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file, we prove the finite Jensen inequality and the finite maximum principle for convex
functions. The integral versions are to be found in `analysis.convex.integral`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/09079525fd01b3dda35e96adaa08d2f943e1648c
@@ -45,6 +45,12 @@ section Jensen
variable [LinearOrderedField π] [AddCommGroup E] [OrderedAddCommGroup Ξ²] [Module π E] [Module π Ξ²]
[OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
+/- warning: convex_on.map_center_mass_le -> ConvexOn.map_centerMass_le is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)))
+but is expected to have type
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (Finset.centerMass.{u4, u2, u1} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u1, succ u3, succ u2} ΞΉ E Ξ² f p)))
+Case conversion may be inaccurate. Consider using '#align convex_on.map_center_mass_le ConvexOn.map_centerMass_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
@@ -56,6 +62,12 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
simp only [center_mass, Function.comp, Prod.smul_fst, Prod.fst_sum, Prod.smul_snd, Prod.snd_sum]
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
+/- warning: concave_on.le_map_center_mass -> ConcaveOn.le_map_centerMass is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.centerMass.{u1, u3, u4} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u4, succ u2, succ u3} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
+but is expected to have type
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.centerMass.{u4, u2, u1} π Ξ² ΞΉ _inst_1 (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3) _inst_5 t w (Function.comp.{succ u1, succ u3, succ u2} ΞΉ E Ξ² f p)) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))
+Case conversion may be inaccurate. Consider using '#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMassβ'. -/
/-- Concave **Jensen's inequality**, `finset.center_mass` version. -/
theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
@@ -63,6 +75,12 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
@ConvexOn.map_centerMass_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
+/- warning: convex_on.map_sum_le -> ConvexOn.map_sum_le is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))))
+but is expected to have type
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (NonAssocRing.toOne.{u4} π (Ring.toNonAssocRing.{u4} π (StrictOrderedRing.toRing.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.map_sum_le ConvexOn.map_sum_leβ'. -/
/-- Convex **Jensen's inequality**, `finset.sum` version. -/
theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : (β i in t, w i) = 1)
(hmem : β i β t, p i β s) : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i) := by
@@ -70,6 +88,12 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
hf.map_center_mass_le hβ (hβ.symm βΈ zero_lt_one) hmem
#align convex_on.map_sum_le ConvexOn.map_sum_le
+/- warning: concave_on.le_map_sum -> ConcaveOn.le_map_sum is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : OrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² _inst_3)) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (Eq.{succ u1} π (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u1} π 1 (OfNat.mk.{u1} π 1 (One.one.{u1} π (AddMonoidWithOne.toOne.{u1} π (AddGroupWithOne.toAddMonoidWithOne.{u1} π (AddCommGroupWithOne.toAddGroupWithOne.{u1} π (Ring.toAddCommGroupWithOne.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² _inst_3))) (Finset.sum.{u3, u4} Ξ² ΞΉ (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) t (fun (i : ΞΉ) => SMul.smul.{u1, u3} π Ξ² (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² _inst_3)) _inst_5)))) (w i) (f (p i)))) (f (Finset.sum.{u2, u4} E ΞΉ (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) t (fun (i : ΞΉ) => SMul.smul.{u1, u2} π E (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (w i) (p i)))))
+but is expected to have type
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : OrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (Eq.{succ u4} π (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i)) (OfNat.ofNat.{u4} π 1 (One.toOfNat1.{u4} π (NonAssocRing.toOne.{u4} π (Ring.toNonAssocRing.{u4} π (StrictOrderedRing.toRing.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1))))))))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² _inst_3))) (Finset.sum.{u2, u1} Ξ² ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u2, u2} π Ξ² Ξ² (instHSMul.{u4, u2} π Ξ² (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} Ξ² _inst_3)) _inst_5))))) (w i) (f (p i)))) (f (Finset.sum.{u3, u1} E ΞΉ (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) t (fun (i : ΞΉ) => HSMul.hSMul.{u4, u3, u3} π E E (instHSMul.{u4, u3} π E (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4))))) (w i) (p i)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.le_map_sum ConcaveOn.le_map_sumβ'. -/
/-- Concave **Jensen's inequality**, `finset.sum` version. -/
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : (β i in t, w i) = 1) (hmem : β i β t, p i β s) :
@@ -88,6 +112,12 @@ variable [LinearOrderedField π] [AddCommGroup E] [LinearOrderedAddCommGroup
[Module π Ξ²] [OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
{x : E}
+/- warning: le_sup_of_mem_convex_hull -> le_sup_of_mem_convexHull is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (Finset.sup'.{u3, u2} Ξ² E (Lattice.toSemilatticeSup.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u3}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u2, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u3} E}, (ConvexOn.{u2, u3, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u2, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u3} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u3} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π Ξ² (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s)) f) -> (forall (hx : Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))), LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f x) (Finset.sup'.{u1, u3} Ξ² E (Lattice.toSemilatticeSup.{u1} Ξ² (DistribLattice.toLattice.{u1} Ξ² (instDistribLattice.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u1} Ξ² _inst_3)))) s (Iff.mp (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (Finset.Nonempty.{u3} E s) (Finset.coe_nonempty.{u3} E s) (Iff.mp (Set.Nonempty.{u3} E (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (convexHull_nonempty_iff.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (Finset.toSet.{u3} E s)) (Exists.intro.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) x hx))) f))
+Case conversion may be inaccurate. Consider using '#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHullβ'. -/
theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
f x β€ s.sup' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f :=
@@ -98,12 +128,24 @@ theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull
(center_mass_le_sup hwβ <| by positivity)
#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHull
+/- warning: inf_le_of_mem_convex_hull -> inf_le_of_mem_convexHull is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u2} E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) f) -> (forall (hx : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))), LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (Finset.inf'.{u3, u2} Ξ² E (Lattice.toSemilatticeInf.{u3} Ξ² (LinearOrder.toLattice.{u3} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u3} Ξ² _inst_3))) s (Iff.mp (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Finset.Nonempty.{u2} E s) (Finset.coe_nonempty.{u2} E s) (Iff.mp (Set.Nonempty.{u2} E (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) (Set.Nonempty.{u2} E ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (convexHull_nonempty_iff.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s)) (Exists.intro.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} E) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (CoeTCβ.coe.{succ u2, succ u2} (Finset.{u2} E) (Set.{u2} E) (Finset.Set.hasCoeT.{u2} E))) s))) x hx))) f) (f x))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u3}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u2, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {f : E -> Ξ²} {x : E} {s : Finset.{u3} E}, (ConcaveOn.{u2, u3, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u2, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u3} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u3} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u2, u3} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π Ξ² (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π Ξ² (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u2, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s)) f) -> (forall (hx : Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))), LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (Finset.inf'.{u1, u3} Ξ² E (Lattice.toSemilatticeInf.{u1} Ξ² (DistribLattice.toLattice.{u1} Ξ² (instDistribLattice.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrder.{u1} Ξ² _inst_3)))) s (Iff.mp (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (Finset.Nonempty.{u3} E s) (Finset.coe_nonempty.{u3} E s) (Iff.mp (Set.Nonempty.{u3} E (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) (Set.Nonempty.{u3} E (Finset.toSet.{u3} E s)) (convexHull_nonempty_iff.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (Finset.toSet.{u3} E s)) (Exists.intro.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (OrderHom.toFun.{u3, u3} (Set.{u3} E) (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (ClosureOperator.toOrderHom.{u3} (Set.{u3} E) (PartialOrder.toPreorder.{u3} (Set.{u3} E) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Set.{u3} E) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Set.{u3} E) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} E) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} E) (Set.instCompleteBooleanAlgebraSet.{u3} E))))))) (convexHull.{u2, u3} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)) (Finset.toSet.{u3} E s))) x hx))) f) (f x))
+Case conversion may be inaccurate. Consider using '#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHullβ'. -/
theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
s.inf' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f β€ f x :=
le_sup_of_mem_convexHull hf.dual hx
#align inf_le_of_mem_convex_hull inf_le_of_mem_convexHull
+/- warning: convex_on.exists_ge_of_center_mass -> ConvexOn.exists_ge_of_centerMass is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
+but is expected to have type
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConvexOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (Exists.{succ u1} ΞΉ (fun (i : ΞΉ) => And (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3)))) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)) (f (p i)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMassβ'. -/
/-- If a function `f` is convex on `s`, then the value it takes at some center of mass of points of
`s` is less than the value it takes on one of those points. -/
theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i β t, 0 β€ w i)
@@ -121,6 +163,12 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
infer_instance
#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMass
+/- warning: concave_on.exists_le_of_center_mass -> ConcaveOn.exists_le_of_centerMass is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} {ΞΉ : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²} {t : Finset.{u4} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (LE.le.{u1} π (Preorder.toLE.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (w i))) -> (LT.lt.{u1} π (Preorder.toLT.{u1} π (PartialOrder.toPreorder.{u1} π (OrderedAddCommGroup.toPartialOrder.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))) (OfNat.ofNat.{u1} π 0 (OfNat.mk.{u1} π 0 (Zero.zero.{u1} π (MulZeroClass.toHasZero.{u1} π (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} π (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} π (NonAssocRing.toNonUnitalNonAssocRing.{u1} π (Ring.toNonAssocRing.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))))))))) (Finset.sum.{u1, u4} π ΞΉ (AddCommGroup.toAddCommMonoid.{u1} π (OrderedAddCommGroup.toAddCommGroup.{u1} π (StrictOrderedRing.toOrderedAddCommGroup.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) s)) -> (Exists.{succ u4} ΞΉ (fun (i : ΞΉ) => Exists.{0} (Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) (fun (H : Membership.Mem.{u4, u4} ΞΉ (Finset.{u4} ΞΉ) (Finset.hasMem.{u4} ΞΉ) i t) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u1, u2, u4} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
+but is expected to have type
+ forall {π : Type.{u4}} {E : Type.{u3}} {Ξ² : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} π] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : LinearOrderedAddCommGroup.{u2} Ξ²] [_inst_4 : Module.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_5 : Module.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u4, u2} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (AddMonoid.toZero.{u2} Ξ² (AddCommMonoid.toAddMonoid.{u2} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5))] {s : Set.{u3} E} {f : E -> Ξ²} {t : Finset.{u1} ΞΉ} {w : ΞΉ -> π} {p : ΞΉ -> E}, (ConcaveOn.{u4, u3, u2} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u4} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u4, u3} π E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} π E (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} π E (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} π E (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u4, u2} π Ξ² (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u4, u2} π Ξ² (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u4, u2} π Ξ² (Semiring.toMonoidWithZero.{u4} π (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) (NegZeroClass.toZero.{u2} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u2} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u2} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u2} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u2} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u4, u2} π Ξ² (StrictOrderedSemiring.toSemiring.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} Ξ² _inst_3))) _inst_5)))) s f) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (LE.le.{u4} π (Preorder.toLE.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (w i))) -> (LT.lt.{u4} π (Preorder.toLT.{u4} π (PartialOrder.toPreorder.{u4} π (StrictOrderedRing.toPartialOrder.{u4} π (LinearOrderedRing.toStrictOrderedRing.{u4} π (LinearOrderedCommRing.toLinearOrderedRing.{u4} π (LinearOrderedField.toLinearOrderedCommRing.{u4} π _inst_1)))))) (OfNat.ofNat.{u4} π 0 (Zero.toOfNat0.{u4} π (CommMonoidWithZero.toZero.{u4} π (CommGroupWithZero.toCommMonoidWithZero.{u4} π (Semifield.toCommGroupWithZero.{u4} π (LinearOrderedSemifield.toSemifield.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1))))))) (Finset.sum.{u4, u1} π ΞΉ (OrderedCancelAddCommMonoid.toAddCommMonoid.{u4} π (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u4} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} π (LinearOrderedField.toLinearOrderedSemifield.{u4} π _inst_1)))))) t (fun (i : ΞΉ) => w i))) -> (forall (i : ΞΉ), (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) -> (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) (p i) s)) -> (Exists.{succ u1} ΞΉ (fun (i : ΞΉ) => And (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) i t) (LE.le.{u2} Ξ² (Preorder.toLE.{u2} Ξ² (PartialOrder.toPreorder.{u2} Ξ² (OrderedAddCommGroup.toPartialOrder.{u2} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} Ξ² _inst_3)))) (f (p i)) (f (Finset.centerMass.{u4, u3, u1} π E ΞΉ _inst_1 _inst_2 _inst_4 t w p)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMassβ'. -/
/-- If a function `f` is concave on `s`, then the value it takes at some center of mass of points of
`s` is greater than the value it takes on one of those points. -/
theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β i β t, 0 β€ w i)
@@ -128,6 +176,12 @@ theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β
@ConvexOn.exists_ge_of_centerMass π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ h hwβ hwβ hp
#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMass
+/- warning: convex_on.exists_ge_of_mem_convex_hull -> ConvexOn.exists_ge_of_mem_convexHull is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f x) (f y)))))
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u3, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConvexOn.{u3, u2, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π Ξ² (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s) f) -> (forall {x : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) -> (Exists.{succ u2} E (fun (y : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) (LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f x) (f y)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHullβ'. -/
/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
then the eventual maximum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
@@ -141,6 +195,12 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
exact β¨p i, hp i hit, Hiβ©
#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHull
+/- warning: concave_on.exists_le_of_mem_convex_hull -> ConcaveOn.exists_le_of_mem_convexHull is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {Ξ² : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u3} Ξ²] [_inst_4 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u1, u3} π Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u3} Ξ² (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u1, u2, u3} π E Ξ² (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u3} π Ξ² (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} π Ξ² (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} π Ξ² (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u3} Ξ² (AddMonoid.toAddZeroClass.{u3} Ξ² (AddCommMonoid.toAddMonoid.{u3} Ξ² (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u1, u3} π Ξ² (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3))) _inst_5)))) (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s) f) -> (forall {x : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (coeFn.{succ u2, succ u2} (ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (fun (_x : ClosureOperator.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) => (Set.{u2} E) -> (Set.{u2} E)) (ClosureOperator.hasCoeToFun.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))))) (convexHull.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4) s)) -> (Exists.{succ u2} E (fun (y : E) => Exists.{0} (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) (fun (H : Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) => LE.le.{u3} Ξ² (Preorder.toLE.{u3} Ξ² (PartialOrder.toPreorder.{u3} Ξ² (OrderedAddCommGroup.toPartialOrder.{u3} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u3} Ξ² _inst_3)))) (f y) (f x)))))
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {Ξ² : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : LinearOrderedAddCommGroup.{u1} Ξ²] [_inst_4 : Module.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : Module.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))] [_inst_6 : OrderedSMul.{u3, u1} π Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (AddMonoid.toZero.{u1} Ξ² (AddCommMonoid.toAddMonoid.{u1} Ξ² (OrderedAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3)))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5))] {s : Set.{u2} E} {f : E -> Ξ²}, (ConcaveOn.{u3, u2, u1} π E Ξ² (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) (SMulZeroClass.toSMul.{u3, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} π E (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} π E (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u3, u2} π E (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} π Ξ² (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (SMulWithZero.toSMulZeroClass.{u3, u1} π Ξ² (CommMonoidWithZero.toZero.{u3} π (CommGroupWithZero.toCommMonoidWithZero.{u3} π (Semifield.toCommGroupWithZero.{u3} π (LinearOrderedSemifield.toSemifield.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (MulActionWithZero.toSMulWithZero.{u3, u1} π Ξ² (Semiring.toMonoidWithZero.{u3} π (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1)))))) (NegZeroClass.toZero.{u1} Ξ² (SubNegZeroMonoid.toNegZeroClass.{u1} Ξ² (SubtractionMonoid.toSubNegZeroMonoid.{u1} Ξ² (SubtractionCommMonoid.toSubtractionMonoid.{u1} Ξ² (AddCommGroup.toDivisionAddCommMonoid.{u1} Ξ² (OrderedAddCommGroup.toAddCommGroup.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3))))))) (Module.toMulActionWithZero.{u3, u1} π Ξ² (StrictOrderedSemiring.toSemiring.{u3} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} Ξ² (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} Ξ² (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u1} Ξ² _inst_3))) _inst_5)))) (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s) f) -> (forall {x : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (OrderHom.toFun.{u2, u2} (Set.{u2} E) (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (ClosureOperator.toOrderHom.{u2} (Set.{u2} E) (PartialOrder.toPreorder.{u2} (Set.{u2} E) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.instCompleteBooleanAlgebraSet.{u2} E))))))) (convexHull.{u3, u2} π E (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4)) s)) -> (Exists.{succ u2} E (fun (y : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) (LE.le.{u1} Ξ² (Preorder.toLE.{u1} Ξ² (PartialOrder.toPreorder.{u1} Ξ² (OrderedAddCommGroup.toPartialOrder.{u1} Ξ² (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u1} Ξ² _inst_3)))) (f y) (f x)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHullβ'. -/
/-- Minimum principle for concave functions. If a function `f` is concave on the convex hull of `s`,
then the eventual minimum of `f` on `convex_hull π s` lies in `s`. -/
theorem ConcaveOn.exists_le_of_mem_convexHull (hf : ConcaveOn π (convexHull π s) f) {x}
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -52,7 +52,7 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
by
have hmem' : β i β t, (p i, (f β p) i) β { p : E Γ Ξ² | p.1 β s β§ f p.1 β€ p.2 } := fun i hi =>
β¨hmem i hi, le_rflβ©
- convert (hf.convex_epigraph.center_mass_mem hβ hβ hmem').2 <;>
+ convert(hf.convex_epigraph.center_mass_mem hβ hβ hmem').2 <;>
simp only [center_mass, Function.comp, Prod.smul_fst, Prod.fst_sum, Prod.smul_snd, Prod.snd_sum]
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
b β 0 β a * b / b = a
(#12424)
This lets us unify a few lemmas between GroupWithZero
and EuclideanDomain
and two lemmas that were previously proved separately for Nat
, Int
, Polynomial
.
@@ -124,8 +124,8 @@ lemma StrictConvexOn.map_sum_lt (hf : StrictConvexOn π s f) (hβ : β i β
have := hβ k <| by simp
let c := w j + w k
have hc : w j / c + w k / c = 1 := by field_simp
- have hcj : c * (w j / c) = w j := by field_simp; ring
- have hck : c * (w k / c) = w k := by field_simp; ring
+ have hcj : c * (w j / c) = w j := by field_simp
+ have hck : c * (w k / c) = w k := by field_simp
calc f (w j β’ p j + (w k β’ p k + β x in u, w x β’ p x))
_ = f (c β’ ((w j / c) β’ p j + (w k / c) β’ p k) + β x in u, w x β’ p x) := by
rw [smul_add, β mul_smul, β mul_smul, hcj, hck, add_assoc]
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -35,7 +35,8 @@ As corollaries, we get:
open Finset LinearMap Set
-open BigOperators Classical Convex Pointwise
+open scoped Classical
+open BigOperators Convex Pointwise
variable {π E F Ξ² ΞΉ : Type*}
@@ -111,8 +111,8 @@ lemma StrictConvexOn.map_sum_lt (hf : StrictConvexOn π s f) (hβ : β i β
-- We replace `t` by `t \ {j, k}`
have : k β t.erase j := mem_erase.2 β¨ne_of_apply_ne _ hjk.symm, hkβ©
let u := (t.erase j).erase k
- have hj : j β u := by simp
- have hk : k β u := by simp
+ have hj : j β u := by simp [u]
+ have hk : k β u := by simp [u]
have ht :
t = (u.cons k hk).cons j (mem_cons.not.2 <| not_or_intro (ne_of_apply_ne _ hjk) hj) := by
simp [insert_erase this, insert_erase βΉj β tβΊ, *]
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -113,8 +113,9 @@ lemma StrictConvexOn.map_sum_lt (hf : StrictConvexOn π s f) (hβ : β i β
let u := (t.erase j).erase k
have hj : j β u := by simp
have hk : k β u := by simp
- have ht : t = (u.cons k hk).cons j (mem_cons.not.2 <| not_or_intro (ne_of_apply_ne _ hjk) hj)
- Β· simp [insert_erase this, insert_erase βΉj β tβΊ, *]
+ have ht :
+ t = (u.cons k hk).cons j (mem_cons.not.2 <| not_or_intro (ne_of_apply_ne _ hjk) hj) := by
+ simp [insert_erase this, insert_erase βΉj β tβΊ, *]
clear_value u
subst ht
simp only [sum_cons]
Corollaries of existing lemmas.
From LeanAPAP
@@ -249,7 +249,7 @@ section MaximumPrinciple
variable [LinearOrderedField π] [AddCommGroup E] [LinearOrderedAddCommGroup Ξ²] [Module π E]
[Module π Ξ²] [OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
- {x : E}
+ {x y z : E}
theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
@@ -289,8 +289,8 @@ theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β
ConvexOn.exists_ge_of_centerMass (Ξ² := Ξ²α΅α΅) h hwβ hwβ hp
#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMass
-/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
-then the eventual maximum of `f` on `convexHull π s` lies in `s`. -/
+/-- **Maximum principle** for convex functions. If a function `f` is convex on the convex hull of
+`s`, then the eventual maximum of `f` on `convexHull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
(hx : x β convexHull π s) : β y β s, f x β€ f y := by
rw [_root_.convexHull_eq] at hx
@@ -301,11 +301,35 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
exact β¨p i, hp i hit, Hiβ©
#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHull
-/-- Minimum principle for concave functions. If a function `f` is concave on the convex hull of `s`,
-then the eventual minimum of `f` on `convexHull π s` lies in `s`. -/
+/-- **Minimum principle** for concave functions. If a function `f` is concave on the convex hull of
+`s`, then the eventual minimum of `f` on `convexHull π s` lies in `s`. -/
theorem ConcaveOn.exists_le_of_mem_convexHull (hf : ConcaveOn π (convexHull π s) f) {x}
(hx : x β convexHull π s) : β y β s, f y β€ f x :=
ConvexOn.exists_ge_of_mem_convexHull (Ξ² := Ξ²α΅α΅) hf hx
#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHull
+/-- **Maximum principle** for convex functions on a segment. If a function `f` is convex on the
+segment `[x, y]`, then the eventual maximum of `f` on `[x, y]` is at `x` or `y`. -/
+lemma ConvexOn.le_max_of_mem_segment (hf : ConvexOn π [x -[π] y] f) (hz : z β [x -[π] y]) :
+ f z β€ max (f x) (f y) := by
+ rw [β convexHull_pair] at hf hz; simpa using hf.exists_ge_of_mem_convexHull hz
+
+/-- **Minimum principle** for concave functions on a segment. If a function `f` is concave on the
+segment `[x, y]`, then the eventual minimum of `f` on `[x, y]` is at `x` or `y`. -/
+lemma ConcaveOn.min_le_of_mem_segment (hf : ConcaveOn π [x -[π] y] f) (hz : z β [x -[π] y]) :
+ min (f x) (f y) β€ f z := by
+ rw [β convexHull_pair] at hf hz; simpa using hf.exists_le_of_mem_convexHull hz
+
+/-- **Maximum principle** for convex functions on an interval. If a function `f` is convex on the
+interval `[x, y]`, then the eventual maximum of `f` on `[x, y]` is at `x` or `y`. -/
+lemma ConvexOn.le_max_of_mem_Icc {f : π β Ξ²} {x y z : π} (hf : ConvexOn π (Icc x y) f)
+ (hz : z β Icc x y) : f z β€ max (f x) (f y) := by
+ rw [β segment_eq_Icc (hz.1.trans hz.2)] at hf hz; exact hf.le_max_of_mem_segment hz
+
+/-- **Minimum principle** for concave functions on an interval. If a function `f` is concave on the
+interval `[x, y]`, then the eventual minimum of `f` on `[x, y]` is at `x` or `y`. -/
+lemma ConcaveOn.min_le_of_mem_Icc {f : π β Ξ²} {x y z : π} (hf : ConcaveOn π (Icc x y) f)
+ (hz : z β Icc x y) : min (f x) (f y) β€ f z := by
+ rw [β segment_eq_Icc (hz.1.trans hz.2)] at hf hz; exact hf.min_le_of_mem_segment hz
+
end MaximumPrinciple
$
with <|
(#9319)
See Zulip thread for the discussion.
@@ -113,13 +113,13 @@ lemma StrictConvexOn.map_sum_lt (hf : StrictConvexOn π s f) (hβ : β i β
let u := (t.erase j).erase k
have hj : j β u := by simp
have hk : k β u := by simp
- have ht : t = (u.cons k hk).cons j (mem_cons.not.2 $ not_or_intro (ne_of_apply_ne _ hjk) hj)
+ have ht : t = (u.cons k hk).cons j (mem_cons.not.2 <| not_or_intro (ne_of_apply_ne _ hjk) hj)
Β· simp [insert_erase this, insert_erase βΉj β tβΊ, *]
clear_value u
subst ht
simp only [sum_cons]
- have := hβ j $ by simp
- have := hβ k $ by simp
+ have := hβ j <| by simp
+ have := hβ k <| by simp
let c := w j + w k
have hc : w j / c + w k / c = 1 := by field_simp
have hcj : c * (w j / c) = w j := by field_simp; ring
@@ -130,13 +130,13 @@ lemma StrictConvexOn.map_sum_lt (hf : StrictConvexOn π s f) (hβ : β i β
_ β€ c β’ f ((w j / c) β’ p j + (w k / c) β’ p k) + β x in u, w x β’ f (p x) :=
-- apply the usual Jensen's inequality wrt the weighted average of the two distinguished
-- points and all the other points
- hf.convexOn.map_add_sum_le (fun i hi β¦ (hβ _ $ by simp [hi]).le)
+ hf.convexOn.map_add_sum_le (fun i hi β¦ (hβ _ <| by simp [hi]).le)
(by simpa [-cons_eq_insert, β add_assoc] using hβ)
- (forall_of_forall_cons $ forall_of_forall_cons hmem) (by positivity) $ by
- refine hf.1 (hmem _ $ by simp) (hmem _ $ by simp) ?_ ?_ hc <;> positivity
+ (forall_of_forall_cons <| forall_of_forall_cons hmem) (by positivity) <| by
+ refine hf.1 (hmem _ <| by simp) (hmem _ <| by simp) ?_ ?_ hc <;> positivity
_ < c β’ ((w j / c) β’ f (p j) + (w k / c) β’ f (p k)) + β x in u, w x β’ f (p x) := by
-- then apply the definition of strict convexity for the two distinguished points
- gcongr; refine hf.2 (hmem _ $ by simp) (hmem _ $ by simp) hjk ?_ ?_ hc <;> positivity
+ gcongr; refine hf.2 (hmem _ <| by simp) (hmem _ <| by simp) hjk ?_ ?_ hc <;> positivity
_ = (w j β’ f (p j) + w k β’ f (p k)) + β x in u, w x β’ f (p x) := by
rw [smul_add, β mul_smul, β mul_smul, hcj, hck]
_ = w j β’ f (p j) + (w k β’ f (p k) + β x in u, w x β’ f (p x)) := by abel_nf
@@ -163,7 +163,7 @@ lemma StrictConvexOn.eq_of_le_map_sum (hf : StrictConvexOn π s f) (hβ : β
(hβ : β i in t, w i = 1) (hmem : β i β t, p i β s)
(h_eq : β i in t, w i β’ f (p i) β€ f (β i in t, w i β’ p i)) :
β β¦jβ¦, j β t β β β¦kβ¦, k β t β p j = p k := by
- by_contra!; exact h_eq.not_lt $ hf.map_sum_lt hβ hβ hmem this
+ by_contra!; exact h_eq.not_lt <| hf.map_sum_lt hβ hβ hmem this
/-- A form of the **equality case of Jensen's equality**.
@@ -175,7 +175,7 @@ lemma StrictConcaveOn.eq_of_map_sum_eq (hf : StrictConcaveOn π s f) (hβ :
(hβ : β i in t, w i = 1) (hmem : β i β t, p i β s)
(h_eq : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i)) :
β β¦jβ¦, j β t β β β¦kβ¦, k β t β p j = p k := by
- by_contra!; exact h_eq.not_lt $ hf.lt_map_sum hβ hβ hmem this
+ by_contra!; exact h_eq.not_lt <| hf.lt_map_sum hβ hβ hmem this
/-- Canonical form of the **equality case of Jensen's equality**.
β’
lemmas (#9179)
Remove the duplicates introduced in #8869 by sorting the lemmas in Algebra.Order.SMul
into three files:
Algebra.Order.Module.Defs
for the order isomorphism induced by scalar multiplication by a positivity elementAlgebra.Order.Module.Pointwise
for the order properties of scalar multiplication of sets. This file is new. I credit myself for https://github.com/leanprover-community/mathlib/pull/9078Algebra.Order.Module.OrderedSMul
: The material about OrderedSMul
per se. Inherits the copyright header from Algebra.Order.SMul
. This file should eventually be deleted.I move each #align
to the correct file. On top of that, I delete unused redundant OrderedSMul
instances (they were useful in Lean 3, but not anymore) and eq_of_smul_eq_smul_of_pos_of_le
/eq_of_smul_eq_smul_of_neg_of_le
since those lemmas are weird and unused.
@@ -274,10 +274,10 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
obtain β¨i, hi, hfiβ© : β i β t.filter fun i => w i β 0, w i β’ f y β€ w i β’ (f β p) i
rotate_left
Β· rw [mem_filter] at hi
- exact β¨i, hi.1, (smul_le_smul_iff_of_pos <| (hwβ i hi.1).lt_of_ne hi.2.symm).1 hfiβ©
+ exact β¨i, hi.1, (smul_le_smul_iff_of_pos_left <| (hwβ i hi.1).lt_of_ne hi.2.symm).1 hfiβ©
have hw' : (0 : π) < β i in filter (fun i => w i β 0) t, w i := by rwa [sum_filter_ne_zero]
refine' exists_le_of_sum_le (nonempty_of_sum_ne_zero hw'.ne') _
- rw [β sum_smul, β smul_le_smul_iff_of_pos (inv_pos.2 hw'), inv_smul_smulβ hw'.ne', β
+ rw [β sum_smul, β smul_le_smul_iff_of_pos_left (inv_pos.2 hw'), inv_smul_smulβ hw'.ne', β
centerMass, centerMass_filter_ne_zero]
exact h.map_centerMass_le hwβ hwβ hp
#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMass
@@ -5,6 +5,7 @@ Authors: Alexander Bentkamp, Yury Kudriashov
-/
import Mathlib.Analysis.Convex.Combination
import Mathlib.Analysis.Convex.Function
+import Mathlib.Tactic.FieldSimp
#align_import analysis.convex.jensen from "leanprover-community/mathlib"@"bfad3f455b388fbcc14c49d0cac884f774f14d20"
@@ -21,8 +22,12 @@ Jensen's inequalities:
convex combination of points under a convex function is less than the convex combination of the
images.
* `ConcaveOn.le_map_centerMass`, `ConcaveOn.le_map_sum`: Concave Jensen's inequality.
+* `StrictConvexOn.map_sum_lt`: Convex strict Jensen inequality.
+* `StrictConcaveOn.lt_map_sum`: Concave strict Jensen inequality.
As corollaries, we get:
+* `StrictConvexOn.map_sum_eq_iff`: Equality case of the convex Jensen inequality.
+* `StrictConcaveOn.map_sum_eq_iff`: Equality case of the concave Jensen inequality.
* `ConvexOn.exists_ge_of_mem_convexHull`: Maximum principle for convex functions.
* `ConcaveOn.exists_le_of_mem_convexHull`: Minimum principle for concave functions.
-/
@@ -40,7 +45,7 @@ variable {π E F Ξ² ΞΉ : Type*}
section Jensen
variable [LinearOrderedField π] [AddCommGroup E] [OrderedAddCommGroup Ξ²] [Module π E] [Module π Ξ²]
- [OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E}
+ [OrderedSMul π Ξ²] {s : Set E} {f : E β Ξ²} {t : Finset ΞΉ} {w : ΞΉ β π} {p : ΞΉ β E} {v : π} {q : E}
/-- Convex **Jensen's inequality**, `Finset.centerMass` version. -/
theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i)
@@ -73,6 +78,168 @@ theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0
ConvexOn.map_sum_le (Ξ² := Ξ²α΅α΅) hf hβ hβ hmem
#align concave_on.le_map_sum ConcaveOn.le_map_sum
+/-- Convex **Jensen's inequality** where an element plays a distinguished role. -/
+lemma ConvexOn.map_add_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i)
+ (hβ : v + β i in t, w i = 1) (hmem : β i β t, p i β s) (hv : 0 β€ v) (hq : q β s) :
+ f (v β’ q + β i in t, w i β’ p i) β€ v β’ f q + β i in t, w i β’ f (p i) := by
+ let W j := Option.elim j v w
+ let P j := Option.elim j q p
+ have : f (β j in insertNone t, W j β’ P j) β€ β j in insertNone t, W j β’ f (P j) :=
+ hf.map_sum_le (forall_mem_insertNone.2 β¨hv, hββ©) (by simpa using hβ)
+ (forall_mem_insertNone.2 β¨hq, hmemβ©)
+ simpa using this
+
+/-- Concave **Jensen's inequality** where an element plays a distinguished role. -/
+lemma ConcaveOn.map_add_sum_le (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
+ (hβ : v + β i in t, w i = 1) (hmem : β i β t, p i β s) (hv : 0 β€ v) (hq : q β s) :
+ v β’ f q + β i in t, w i β’ f (p i) β€ f (v β’ q + β i in t, w i β’ p i) :=
+ hf.dual.map_add_sum_le hβ hβ hmem hv hq
+
+/-! ### Strict Jensen inequality -/
+
+/-- Convex **strict Jensen inequality**.
+
+If the function is strictly convex, the weights are strictly positive and the indexed family of
+points is non-constant, then Jensen's inequality is strict.
+
+See also `StrictConvexOn.map_sum_eq_iff`. -/
+lemma StrictConvexOn.map_sum_lt (hf : StrictConvexOn π s f) (hβ : β i β t, 0 < w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) (hp : β j β t, β k β t, p j β p k) :
+ f (β i in t, w i β’ p i) < β i in t, w i β’ f (p i) := by
+ classical
+ obtain β¨j, hj, k, hk, hjkβ© := hp
+ -- We replace `t` by `t \ {j, k}`
+ have : k β t.erase j := mem_erase.2 β¨ne_of_apply_ne _ hjk.symm, hkβ©
+ let u := (t.erase j).erase k
+ have hj : j β u := by simp
+ have hk : k β u := by simp
+ have ht : t = (u.cons k hk).cons j (mem_cons.not.2 $ not_or_intro (ne_of_apply_ne _ hjk) hj)
+ Β· simp [insert_erase this, insert_erase βΉj β tβΊ, *]
+ clear_value u
+ subst ht
+ simp only [sum_cons]
+ have := hβ j $ by simp
+ have := hβ k $ by simp
+ let c := w j + w k
+ have hc : w j / c + w k / c = 1 := by field_simp
+ have hcj : c * (w j / c) = w j := by field_simp; ring
+ have hck : c * (w k / c) = w k := by field_simp; ring
+ calc f (w j β’ p j + (w k β’ p k + β x in u, w x β’ p x))
+ _ = f (c β’ ((w j / c) β’ p j + (w k / c) β’ p k) + β x in u, w x β’ p x) := by
+ rw [smul_add, β mul_smul, β mul_smul, hcj, hck, add_assoc]
+ _ β€ c β’ f ((w j / c) β’ p j + (w k / c) β’ p k) + β x in u, w x β’ f (p x) :=
+ -- apply the usual Jensen's inequality wrt the weighted average of the two distinguished
+ -- points and all the other points
+ hf.convexOn.map_add_sum_le (fun i hi β¦ (hβ _ $ by simp [hi]).le)
+ (by simpa [-cons_eq_insert, β add_assoc] using hβ)
+ (forall_of_forall_cons $ forall_of_forall_cons hmem) (by positivity) $ by
+ refine hf.1 (hmem _ $ by simp) (hmem _ $ by simp) ?_ ?_ hc <;> positivity
+ _ < c β’ ((w j / c) β’ f (p j) + (w k / c) β’ f (p k)) + β x in u, w x β’ f (p x) := by
+ -- then apply the definition of strict convexity for the two distinguished points
+ gcongr; refine hf.2 (hmem _ $ by simp) (hmem _ $ by simp) hjk ?_ ?_ hc <;> positivity
+ _ = (w j β’ f (p j) + w k β’ f (p k)) + β x in u, w x β’ f (p x) := by
+ rw [smul_add, β mul_smul, β mul_smul, hcj, hck]
+ _ = w j β’ f (p j) + (w k β’ f (p k) + β x in u, w x β’ f (p x)) := by abel_nf
+
+/-- Concave **strict Jensen inequality**.
+
+If the function is strictly concave, the weights are strictly positive and the indexed family of
+points is non-constant, then Jensen's inequality is strict.
+
+See also `StrictConcaveOn.map_sum_eq_iff`. -/
+lemma StrictConcaveOn.lt_map_sum (hf : StrictConcaveOn π s f) (hβ : β i β t, 0 < w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) (hp : β j β t, β k β t, p j β p k) :
+ β i in t, w i β’ f (p i) < f (β i in t, w i β’ p i) := hf.dual.map_sum_lt hβ hβ hmem hp
+
+/-! ### Equality case of Jensen's inequality -/
+
+/-- A form of the **equality case of Jensen's equality**.
+
+For a strictly convex function `f` and positive weights `w`, if
+`f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i)`, then the points `p` are all equal.
+
+See also `StrictConvexOn.map_sum_eq_iff`. -/
+lemma StrictConvexOn.eq_of_le_map_sum (hf : StrictConvexOn π s f) (hβ : β i β t, 0 < w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s)
+ (h_eq : β i in t, w i β’ f (p i) β€ f (β i in t, w i β’ p i)) :
+ β β¦jβ¦, j β t β β β¦kβ¦, k β t β p j = p k := by
+ by_contra!; exact h_eq.not_lt $ hf.map_sum_lt hβ hβ hmem this
+
+/-- A form of the **equality case of Jensen's equality**.
+
+For a strictly concave function `f` and positive weights `w`, if
+`f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i)`, then the points `p` are all equal.
+
+See also `StrictConcaveOn.map_sum_eq_iff`. -/
+lemma StrictConcaveOn.eq_of_map_sum_eq (hf : StrictConcaveOn π s f) (hβ : β i β t, 0 < w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s)
+ (h_eq : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i)) :
+ β β¦jβ¦, j β t β β β¦kβ¦, k β t β p j = p k := by
+ by_contra!; exact h_eq.not_lt $ hf.lt_map_sum hβ hβ hmem this
+
+/-- Canonical form of the **equality case of Jensen's equality**.
+
+For a strictly convex function `f` and positive weights `w`, we have
+`f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i)` if and only if the points `p` are all equal
+(and in fact all equal to their center of mass wrt `w`). -/
+lemma StrictConvexOn.map_sum_eq_iff {w : ΞΉ β π} {p : ΞΉ β E} (hf : StrictConvexOn π s f)
+ (hβ : β i β t, 0 < w i) (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) :
+ f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i) β β j β t, p j = β i in t, w i β’ p i := by
+ constructor
+ Β· obtain rfl | β¨iβ, hiββ© := t.eq_empty_or_nonempty
+ Β· simp
+ intro h_eq i hi
+ have H : β j β t, p j = p iβ := by
+ intro j hj
+ apply hf.eq_of_le_map_sum hβ hβ hmem h_eq.ge hj hiβ
+ calc p i = p iβ := by rw [H _ hi]
+ _ = (1:π) β’ p iβ := by simp
+ _ = (β j in t, w j) β’ p iβ := by rw [hβ]
+ _ = β j in t, (w j β’ p iβ) := by rw [sum_smul]
+ _ = β j in t, (w j β’ p j) := by congr! 2 with j hj; rw [β H _ hj]
+ Β· intro h
+ have H : β j β t, w j β’ f (p j) = w j β’ f (β i in t, w i β’ p i) := by
+ intro j hj
+ simp [h j hj]
+ rw [sum_congr rfl H, β sum_smul, hβ, one_smul]
+
+/-- Canonical form of the **equality case of Jensen's equality**.
+
+For a strictly concave function `f` and positive weights `w`, we have
+`f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i)` if and only if the points `p` are all equal
+(and in fact all equal to their center of mass wrt `w`). -/
+lemma StrictConcaveOn.map_sum_eq_iff (hf : StrictConcaveOn π s f) (hβ : β i β t, 0 < w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) :
+ f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i) β β j β t, p j = β i in t, w i β’ p i := by
+ simpa using hf.neg.map_sum_eq_iff hβ hβ hmem
+
+/-- Canonical form of the **equality case of Jensen's equality**.
+
+For a strictly convex function `f` and nonnegative weights `w`, we have
+`f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i)` if and only if the points `p` with nonzero
+weight are all equal (and in fact all equal to their center of mass wrt `w`). -/
+lemma StrictConvexOn.map_sum_eq_iff' (hf : StrictConvexOn π s f) (hβ : β i β t, 0 β€ w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) :
+ f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i) β
+ β j β t, w j β 0 β p j = β i in t, w i β’ p i := by
+ have hw (i) (_ : i β t) : w i β’ p i β 0 β w i β 0 := by aesop
+ have hw' (i) (_ : i β t) : w i β’ f (p i) β 0 β w i β 0 := by aesop
+ rw [β sum_filter_of_ne hw, β sum_filter_of_ne hw', hf.map_sum_eq_iff]
+ Β· simp
+ Β· simp (config := { contextual := true }) [(hβ _ _).gt_iff_ne]
+ Β· rwa [sum_filter_ne_zero]
+ Β· simp (config := { contextual := true }) [hmem _ _]
+
+/-- Canonical form of the **equality case of Jensen's equality**.
+
+For a strictly concave function `f` and nonnegative weights `w`, we have
+`f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i)` if and only if the points `p` with nonzero
+weight are all equal (and in fact all equal to their center of mass wrt `w`). -/
+lemma StrictConcaveOn.map_sum_eq_iff' (hf : StrictConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) :
+ f (β i in t, w i β’ p i) = β i in t, w i β’ f (p i) β
+ β j β t, w j β 0 β p j = β i in t, w i β’ p i := hf.dual.map_sum_eq_iff' hβ hβ hmem
+
end Jensen
/-! ### Maximum principle -/
@@ -111,7 +278,7 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
have hw' : (0 : π) < β i in filter (fun i => w i β 0) t, w i := by rwa [sum_filter_ne_zero]
refine' exists_le_of_sum_le (nonempty_of_sum_ne_zero hw'.ne') _
rw [β sum_smul, β smul_le_smul_iff_of_pos (inv_pos.2 hw'), inv_smul_smulβ hw'.ne', β
- Finset.centerMass, Finset.centerMass_filter_ne_zero]
+ centerMass, centerMass_filter_ne_zero]
exact h.map_centerMass_le hwβ hwβ hp
#align convex_on.exists_ge_of_center_mass ConvexOn.exists_ge_of_centerMass
[@foo](https://github.com/foo) _ _ _ _ _ ...
by named arguments (#8702)
Using Lean4's named arguments, we manage to remove a few hard-to-read explicit function calls [@foo](https://github.com/foo) _ _ _ _ _ ...
which used to be necessary in Lean3.
Occasionally, this results in slightly longer code. The benefit of named arguments is readability, as well as to reduce the brittleness of the code when the argument order is changed.
Co-authored-by: Michael Rothgang <rothgami@math.hu-berlin.de>
@@ -56,7 +56,7 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : 0 < β i in t, w i) (hmem : β i β t, p i β s) :
t.centerMass w (f β p) β€ f (t.centerMass w p) :=
- @ConvexOn.map_centerMass_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
+ ConvexOn.map_centerMass_le (Ξ² := Ξ²α΅α΅) hf hβ hβ hmem
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
/-- Convex **Jensen's inequality**, `Finset.sum` version. -/
@@ -70,7 +70,7 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
(hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) :
(β i in t, w i β’ f (p i)) β€ f (β i in t, w i β’ p i) :=
- @ConvexOn.map_sum_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
+ ConvexOn.map_sum_le (Ξ² := Ξ²α΅α΅) hf hβ hβ hmem
#align concave_on.le_map_sum ConcaveOn.le_map_sum
end Jensen
@@ -119,7 +119,7 @@ theorem ConvexOn.exists_ge_of_centerMass (h : ConvexOn π s f) (hwβ : β i
`s` is greater than the value it takes on one of those points. -/
theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β i β t, 0 β€ w i)
(hwβ : 0 < β i in t, w i) (hp : β i β t, p i β s) : β i β t, f (p i) β€ f (t.centerMass w p) :=
- @ConvexOn.exists_ge_of_centerMass π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ h hwβ hwβ hp
+ ConvexOn.exists_ge_of_centerMass (Ξ² := Ξ²α΅α΅) h hwβ hwβ hp
#align concave_on.exists_le_of_center_mass ConcaveOn.exists_le_of_centerMass
/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
@@ -138,7 +138,7 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
then the eventual minimum of `f` on `convexHull π s` lies in `s`. -/
theorem ConcaveOn.exists_le_of_mem_convexHull (hf : ConcaveOn π (convexHull π s) f) {x}
(hx : x β convexHull π s) : β y β s, f y β€ f x :=
- @ConvexOn.exists_ge_of_mem_convexHull π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ hf _ hx
+ ConvexOn.exists_ge_of_mem_convexHull (Ξ² := Ξ²α΅α΅) hf hx
#align concave_on.exists_le_of_mem_convex_hull ConcaveOn.exists_le_of_mem_convexHull
end MaximumPrinciple
rcases
, convert
and congrm
(#7725)
Replace rcases(
with rcases (
. Same thing for convert(
and congrm(
. No other change.
@@ -48,7 +48,7 @@ theorem ConvexOn.map_centerMass_le (hf : ConvexOn π s f) (hβ : β i β t,
f (t.centerMass w p) β€ t.centerMass w (f β p) := by
have hmem' : β i β t, (p i, (f β p) i) β { p : E Γ Ξ² | p.1 β s β§ f p.1 β€ p.2 } := fun i hi =>
β¨hmem i hi, le_rflβ©
- convert(hf.convex_epigraph.centerMass_mem hβ hβ hmem').2 <;>
+ convert (hf.convex_epigraph.centerMass_mem hβ hβ hmem').2 <;>
simp only [centerMass, Function.comp, Prod.smul_fst, Prod.fst_sum, Prod.smul_snd, Prod.snd_sum]
#align convex_on.map_center_mass_le ConvexOn.map_centerMass_le
Type _
before the colon (#7718)
We have turned to Type*
instead of Type _
, but many of them remained in mathlib because the straight replacement did not work. In general, having Type _
before the colon is a code smell, though, as it hides which types should be in the same universe and which shouldn't, and is not very robust.
This PR replaces most of the remaining Type _
before the colon (except those in category theory) by Type*
or Type u
. This has uncovered a few bugs (where declarations were not as polymorphic as they should be).
I had to increase heartbeats at two places when replacing Type _
by Type*
, but I think it's worth it as it's really more robust.
@@ -32,7 +32,7 @@ open Finset LinearMap Set
open BigOperators Classical Convex Pointwise
-variable {π E F Ξ² ΞΉ : Type _}
+variable {π E F Ξ² ΞΉ : Type*}
/-! ### Jensen's inequality -/
This will improve spaces in the mathlib4 docs.
@@ -23,7 +23,7 @@ Jensen's inequalities:
* `ConcaveOn.le_map_centerMass`, `ConcaveOn.le_map_sum`: Concave Jensen's inequality.
As corollaries, we get:
-* `ConvexOn.exists_ge_of_mem_convexHull `: Maximum principle for convex functions.
+* `ConvexOn.exists_ge_of_mem_convexHull`: Maximum principle for convex functions.
* `ConcaveOn.exists_le_of_mem_convexHull`: Minimum principle for concave functions.
-/
@@ -125,9 +125,8 @@ theorem ConcaveOn.exists_le_of_centerMass (h : ConcaveOn π s f) (hwβ : β
/-- Maximum principle for convex functions. If a function `f` is convex on the convex hull of `s`,
then the eventual maximum of `f` on `convexHull π s` lies in `s`. -/
theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull π s) f) {x}
- (hx : x β convexHull.{u, v} π s) : β y β s, f x β€ f y := by
- -- Porting note: `convexHull_eq` has an unspecified universe value that we need to pick.
- rw [_root_.convexHull_eq.{u, v, 0}] at hx
+ (hx : x β convexHull π s) : β y β s, f x β€ f y := by
+ rw [_root_.convexHull_eq] at hx
obtain β¨Ξ±, t, w, p, hwβ, hwβ, hp, rflβ© := hx
rcases hf.exists_ge_of_centerMass hwβ (hwβ.symm βΈ zero_lt_one) fun i hi =>
subset_convexHull π s (hp i hi) with
@@ -2,15 +2,12 @@
Copyright (c) 2019 Alexander Bentkamp. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, Yury Kudriashov
-
-! This file was ported from Lean 3 source module analysis.convex.jensen
-! leanprover-community/mathlib commit bfad3f455b388fbcc14c49d0cac884f774f14d20
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Combination
import Mathlib.Analysis.Convex.Function
+#align_import analysis.convex.jensen from "leanprover-community/mathlib"@"bfad3f455b388fbcc14c49d0cac884f774f14d20"
+
/-!
# Jensen's inequality and maximum principle for convex functions
β'
precedence (#5615)
β
, β
and variants).([^a-zA-ZΞ±-ΟΞ-Ξ©'πβ³βπβ)]) \(([ββ][^()ββ]*,[^()ββ:]*)\) ([ββ=<β€])
replaced by $1 $2 $3
@@ -63,7 +63,7 @@ theorem ConcaveOn.le_map_centerMass (hf : ConcaveOn π s f) (hβ : β i β
#align concave_on.le_map_center_mass ConcaveOn.le_map_centerMass
/-- Convex **Jensen's inequality**, `Finset.sum` version. -/
-theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : (β i in t, w i) = 1)
+theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€ w i) (hβ : β i in t, w i = 1)
(hmem : β i β t, p i β s) : f (β i in t, w i β’ p i) β€ β i in t, w i β’ f (p i) := by
simpa only [centerMass, hβ, inv_one, one_smul] using
hf.map_centerMass_le hβ (hβ.symm βΈ zero_lt_one) hmem
@@ -71,7 +71,7 @@ theorem ConvexOn.map_sum_le (hf : ConvexOn π s f) (hβ : β i β t, 0 β€
/-- Concave **Jensen's inequality**, `Finset.sum` version. -/
theorem ConcaveOn.le_map_sum (hf : ConcaveOn π s f) (hβ : β i β t, 0 β€ w i)
- (hβ : (β i in t, w i) = 1) (hmem : β i β t, p i β s) :
+ (hβ : β i in t, w i = 1) (hmem : β i β t, p i β s) :
(β i in t, w i β’ f (p i)) β€ f (β i in t, w i β’ p i) :=
@ConvexOn.map_sum_le π E Ξ²α΅α΅ _ _ _ _ _ _ _ _ _ _ _ _ hf hβ hβ hmem
#align concave_on.le_map_sum ConcaveOn.le_map_sum
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -95,7 +95,6 @@ theorem le_sup_of_mem_convexHull {s : Finset E} (hf : ConvexOn π (convexHull
(centerMass_le_sup hwβ <| by positivity)
#align le_sup_of_mem_convex_hull le_sup_of_mem_convexHull
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
theorem inf_le_of_mem_convexHull {s : Finset E} (hf : ConcaveOn π (convexHull π (s : Set E)) f)
(hx : x β convexHull π (s : Set E)) :
s.inf' (coe_nonempty.1 <| convexHull_nonempty_iff.1 β¨x, hxβ©) f β€ f x :=
@@ -139,7 +138,6 @@ theorem ConvexOn.exists_ge_of_mem_convexHull (hf : ConvexOn π (convexHull
exact β¨p i, hp i hit, Hiβ©
#align convex_on.exists_ge_of_mem_convex_hull ConvexOn.exists_ge_of_mem_convexHull
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
/-- Minimum principle for concave functions. If a function `f` is concave on the convex hull of `s`,
then the eventual minimum of `f` on `convexHull π s` lies in `s`. -/
theorem ConcaveOn.exists_le_of_mem_convexHull (hf : ConcaveOn π (convexHull π s) f) {x}
Co-authored-by: Moritz Doll <moritz.doll@googlemail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
The unported dependencies are