analysis.convex.independent
β·
Mathlib.Analysis.Convex.Independent
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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
@@ -70,7 +70,7 @@ variable {π}
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p :=
fun s x hx => by
have : (convexHull π (p '' s)).Nonempty := β¨p x, hxβ©
- rw [convexHull_nonempty_iff, Set.image_nonempty] at this
+ rw [convexHull_nonempty_iff, Set.image_nonempty] at this
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
-/
@@ -158,7 +158,7 @@ theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
ConvexIndependent π p β β i s, p i β convexHull π (p '' (s \ {i})) :=
by
refine' β¨fun hc i s h => _, fun h s i hi => _β©
- Β· rw [hc.mem_convex_hull_iff] at h
+ Β· rw [hc.mem_convex_hull_iff] at h
exact h.2 (Set.mem_singleton _)
Β· by_contra H
refine' h i s _
@@ -211,19 +211,19 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
β (s : Finset ΞΉ) (x : ΞΉ), p x β convexHull π (s.image p : Set E) β x β s :=
by
refine' β¨fun hc s x hx => hc s x _, fun h s x hx => _β©
- Β· rwa [Finset.coe_image] at hx
+ Β· rwa [Finset.coe_image] at hx
have hp : injective p := by
rintro a b hab
rw [β mem_singleton]
refine' h {b} a _
rw [hab, image_singleton, coe_singleton, convexHull_singleton]
exact Set.mem_singleton _
- rw [convexHull_eq_union_convexHull_finite_subsets] at hx
- simp_rw [Set.mem_iUnion] at hx
+ rw [convexHull_eq_union_convexHull_finite_subsets] at hx
+ simp_rw [Set.mem_iUnion] at hx
obtain β¨t, ht, hxβ© := hx
rw [β hp.mem_set_image]
refine' ht _
- suffices x β t.preimage p (hp.inj_on _) by rwa [mem_preimage, β mem_coe] at this
+ suffices x β t.preimage p (hp.inj_on _) by rwa [mem_preimage, β mem_coe] at this
refine' h _ x _
rwa [t.image_preimage p (hp.inj_on _), filter_true_of_mem]
Β· exact fun y hy => s.image_subset_range p (ht <| mem_coe.2 hy)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -70,7 +70,7 @@ variable {π}
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p :=
fun s x hx => by
have : (convexHull π (p '' s)).Nonempty := β¨p x, hxβ©
- rw [convexHull_nonempty_iff, Set.nonempty_image_iff] at this
+ rw [convexHull_nonempty_iff, Set.image_nonempty] at this
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 YaΓ«l Dillies, Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies, Bhavik Mehta
-/
-import Mathbin.Analysis.Convex.Combination
-import Mathbin.Analysis.Convex.Extreme
+import Analysis.Convex.Combination
+import Analysis.Convex.Extreme
#align_import analysis.convex.independent from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 YaΓ«l Dillies, Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies, Bhavik Mehta
-
-! This file was ported from Lean 3 source module analysis.convex.independent
-! 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.Extreme
+#align_import analysis.convex.independent from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
+
/-!
# Convex independence
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -68,6 +68,7 @@ def ConvexIndependent (p : ΞΉ β E) : Prop :=
variable {π}
+#print Subsingleton.convexIndependent /-
/-- A family with at most one point is convex independent. -/
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p :=
fun s x hx => by
@@ -75,7 +76,9 @@ theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : Convex
rw [convexHull_nonempty_iff, Set.nonempty_image_iff] at this
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
+-/
+#print ConvexIndependent.injective /-
/-- A convex independent family is injective. -/
protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndependent π p) :
Function.Injective p := by
@@ -83,7 +86,9 @@ protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndepen
rw [hij, Set.image_singleton, convexHull_singleton]
exact Set.mem_singleton _
#align convex_independent.injective ConvexIndependent.injective
+-/
+#print ConvexIndependent.comp_embedding /-
/-- If a family is convex independent, so is any subfamily given by composition of an embedding into
index type with the original family. -/
theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ β E}
@@ -93,14 +98,18 @@ theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ
rw [β f.injective.mem_set_image]
exact hc _ _ (by rwa [Set.image_image])
#align convex_independent.comp_embedding ConvexIndependent.comp_embedding
+-/
+#print ConvexIndependent.subtype /-
/-- If a family is convex independent, so is any subfamily indexed by a subtype of the index type.
-/
protected theorem ConvexIndependent.subtype {p : ΞΉ β E} (hc : ConvexIndependent π p) (s : Set ΞΉ) :
ConvexIndependent π fun i : s => p i :=
hc.comp_embedding (Embedding.subtype _)
#align convex_independent.subtype ConvexIndependent.subtype
+-/
+#print ConvexIndependent.range /-
/-- If an indexed family of points is convex independent, so is the corresponding set of points. -/
protected theorem ConvexIndependent.range {p : ΞΉ β E} (hc : ConvexIndependent π p) :
ConvexIndependent π (fun x => x : Set.range p β E) :=
@@ -112,6 +121,7 @@ protected theorem ConvexIndependent.range {p : ΞΉ β E} (hc : ConvexIndependent
ext
rw [embedding.coe_fn_mk, comp_app, hf]
#align convex_independent.range ConvexIndependent.range
+-/
#print ConvexIndependent.mono /-
/-- A subset of a convex independent set of points is convex independent as well. -/
@@ -134,6 +144,7 @@ theorem Function.Injective.convexIndependent_iff_set {p : ΞΉ β E} (hi : Functi
#align function.injective.convex_independent_iff_set Function.Injective.convexIndependent_iff_set
-/
+#print ConvexIndependent.mem_convexHull_iff /-
/-- If a family is convex independent, a point in the family is in the convex hull of some of the
points given by a subset of the index type if and only if the point's index is in this subset. -/
@[simp]
@@ -141,7 +152,9 @@ protected theorem ConvexIndependent.mem_convexHull_iff {p : ΞΉ β E} (hc : Conv
(s : Set ΞΉ) (i : ΞΉ) : p i β convexHull π (p '' s) β i β s :=
β¨hc _ _, fun hi => subset_convexHull π _ (Set.mem_image_of_mem p hi)β©
#align convex_independent.mem_convex_hull_iff ConvexIndependent.mem_convexHull_iff
+-/
+#print convexIndependent_iff_not_mem_convexHull_diff /-
/-- If a family is convex independent, a point in the family is not in the convex hull of the other
points. See `convex_independent_set_iff_not_mem_convex_hull_diff` for the `set` version. -/
theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
@@ -155,7 +168,9 @@ theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
rw [Set.diff_singleton_eq_self H]
exact hi
#align convex_independent_iff_not_mem_convex_hull_diff convexIndependent_iff_not_mem_convexHull_diff
+-/
+#print convexIndependent_set_iff_inter_convexHull_subset /-
theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
ConvexIndependent π (fun x => x : s β E) β β t, t β s β s β© convexHull π t β t :=
by
@@ -168,7 +183,9 @@ theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
rw [β subtype.coe_injective.mem_set_image]
exact hc (t.image coe) (Subtype.coe_image_subset s t) β¨x.prop, hβ©
#align convex_independent_set_iff_inter_convex_hull_subset convexIndependent_set_iff_inter_convexHull_subset
+-/
+#print convexIndependent_set_iff_not_mem_convexHull_diff /-
/-- If a set is convex independent, a point in the set is not in the convex hull of the other
points. See `convex_independent_iff_not_mem_convex_hull_diff` for the indexed family version. -/
theorem convexIndependent_set_iff_not_mem_convexHull_diff {s : Set E} :
@@ -182,6 +199,7 @@ theorem convexIndependent_set_iff_not_mem_convexHull_diff {s : Set E} :
by_contra h
exact hs _ hxs (convexHull_mono (Set.subset_diff_singleton ht h) hxt)
#align convex_independent_set_iff_not_mem_convex_hull_diff convexIndependent_set_iff_not_mem_convexHull_diff
+-/
end OrderedSemiring
@@ -189,6 +207,7 @@ section LinearOrderedField
variable [LinearOrderedField π] [AddCommGroup E] [Module π E] {s : Set E}
+#print convexIndependent_iff_finset /-
/-- To check convex independence, one only has to check finsets thanks to CarathΓ©odory's theorem. -/
theorem convexIndependent_iff_finset {p : ΞΉ β E} :
ConvexIndependent π p β
@@ -212,10 +231,12 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
rwa [t.image_preimage p (hp.inj_on _), filter_true_of_mem]
Β· exact fun y hy => s.image_subset_range p (ht <| mem_coe.2 hy)
#align convex_independent_iff_finset convexIndependent_iff_finset
+-/
/-! ### Extreme points -/
+#print Convex.convexIndependent_extremePoints /-
theorem Convex.convexIndependent_extremePoints (hs : Convex π s) :
ConvexIndependent π (fun p => p : s.extremePoints π β E) :=
convexIndependent_set_iff_not_mem_convexHull_diff.2 fun x hx h =>
@@ -224,6 +245,7 @@ theorem Convex.convexIndependent_extremePoints (hs : Convex π s) :
(convexHull_min ((Set.diff_subset _ _).trans extremePoints_subset) hs) β¨h, hxβ©)).2
(Set.mem_singleton _)
#align convex.convex_independent_extreme_points Convex.convexIndependent_extremePoints
+-/
end LinearOrderedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -161,7 +161,7 @@ theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
by
constructor
Β· rintro hc t h x β¨hxs, hxtβ©
- refine' hc { x | βx β t } β¨x, hxsβ© _
+ refine' hc {x | βx β t} β¨x, hxsβ© _
rw [Subtype.coe_image_of_subset h]
exact hxt
Β· intro hc t x h
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -72,7 +72,7 @@ variable {π}
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p :=
fun s x hx => by
have : (convexHull π (p '' s)).Nonempty := β¨p x, hxβ©
- rw [convexHull_nonempty_iff, Set.nonempty_image_iff] at this
+ rw [convexHull_nonempty_iff, Set.nonempty_image_iff] at this
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
@@ -148,7 +148,7 @@ theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
ConvexIndependent π p β β i s, p i β convexHull π (p '' (s \ {i})) :=
by
refine' β¨fun hc i s h => _, fun h s i hi => _β©
- Β· rw [hc.mem_convex_hull_iff] at h
+ Β· rw [hc.mem_convex_hull_iff] at h
exact h.2 (Set.mem_singleton _)
Β· by_contra H
refine' h i s _
@@ -195,19 +195,19 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
β (s : Finset ΞΉ) (x : ΞΉ), p x β convexHull π (s.image p : Set E) β x β s :=
by
refine' β¨fun hc s x hx => hc s x _, fun h s x hx => _β©
- Β· rwa [Finset.coe_image] at hx
+ Β· rwa [Finset.coe_image] at hx
have hp : injective p := by
rintro a b hab
rw [β mem_singleton]
refine' h {b} a _
rw [hab, image_singleton, coe_singleton, convexHull_singleton]
exact Set.mem_singleton _
- rw [convexHull_eq_union_convexHull_finite_subsets] at hx
- simp_rw [Set.mem_iUnion] at hx
+ rw [convexHull_eq_union_convexHull_finite_subsets] at hx
+ simp_rw [Set.mem_iUnion] at hx
obtain β¨t, ht, hxβ© := hx
rw [β hp.mem_set_image]
refine' ht _
- suffices x β t.preimage p (hp.inj_on _) by rwa [mem_preimage, β mem_coe] at this
+ suffices x β t.preimage p (hp.inj_on _) by rwa [mem_preimage, β mem_coe] at this
refine' h _ x _
rwa [t.image_preimage p (hp.inj_on _), filter_true_of_mem]
Β· exact fun y hy => s.image_subset_range p (ht <| mem_coe.2 hy)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -48,7 +48,7 @@ independence, convex position
-/
-open Affine BigOperators Classical
+open scoped Affine BigOperators Classical
open Finset Function
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -68,12 +68,6 @@ def ConvexIndependent (p : ΞΉ β E) : Prop :=
variable {π}
-/- warning: subsingleton.convex_independent -> Subsingleton.convexIndependent is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : Subsingleton.{succ u3} ΞΉ] (p : ΞΉ -> E), ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : Subsingleton.{succ u3} ΞΉ] (p : ΞΉ -> E), ConvexIndependent.{u2, u1, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p
-Case conversion may be inaccurate. Consider using '#align subsingleton.convex_independent Subsingleton.convexIndependentβ'. -/
/-- A family with at most one point is convex independent. -/
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p :=
fun s x hx => by
@@ -82,12 +76,6 @@ theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : Convex
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
-/- warning: convex_independent.injective -> ConvexIndependent.injective is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (Function.Injective.{succ u3, succ u2} ΞΉ E p)
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (Function.Injective.{succ u1, succ u2} ΞΉ E p)
-Case conversion may be inaccurate. Consider using '#align convex_independent.injective ConvexIndependent.injectiveβ'. -/
/-- A convex independent family is injective. -/
protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndependent π p) :
Function.Injective p := by
@@ -96,12 +84,6 @@ protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndepen
exact Set.mem_singleton _
#align convex_independent.injective ConvexIndependent.injective
-/- warning: convex_independent.comp_embedding -> ConvexIndependent.comp_embedding is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {ΞΉ' : Type.{u4}} (f : Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u1, u2, u4} π E ΞΉ' _inst_1 _inst_2 _inst_3 (Function.comp.{succ u4, succ u3, succ u2} ΞΉ' ΞΉ E p (coeFn.{max 1 (succ u4) (succ u3), max (succ u4) (succ u3)} (Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) (fun (_x : Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) => ΞΉ' -> ΞΉ) (Function.Embedding.hasCoeToFun.{succ u4, succ u3} ΞΉ' ΞΉ) f)))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {ΞΉ' : Type.{u4}} (f : Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) {p : ΞΉ -> E}, (ConvexIndependent.{u2, u1, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u2, u1, u4} π E ΞΉ' _inst_1 _inst_2 _inst_3 (Function.comp.{succ u4, succ u3, succ u1} ΞΉ' ΞΉ E p (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) ΞΉ' (fun (_x : ΞΉ') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : ΞΉ') => ΞΉ) _x) (EmbeddingLike.toFunLike.{max (succ u3) (succ u4), succ u4, succ u3} (Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) ΞΉ' ΞΉ (Function.instEmbeddingLikeEmbedding.{succ u4, succ u3} ΞΉ' ΞΉ)) f)))
-Case conversion may be inaccurate. Consider using '#align convex_independent.comp_embedding ConvexIndependent.comp_embeddingβ'. -/
/-- If a family is convex independent, so is any subfamily given by composition of an embedding into
index type with the original family. -/
theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ β E}
@@ -112,12 +94,6 @@ theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ
exact hc _ _ (by rwa [Set.image_image])
#align convex_independent.comp_embedding ConvexIndependent.comp_embedding
-/- warning: convex_independent.subtype -> ConvexIndependent.subtype is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u3} ΞΉ), ConvexIndependent.{u1, u2, u3} π E (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) _inst_1 _inst_2 _inst_3 (fun (i : coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) => p ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (CoeTCβ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (coeSubtype.{succ u3} ΞΉ (fun (x : ΞΉ) => Membership.Mem.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.hasMem.{u3} ΞΉ) x s))))) i)))
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u1} ΞΉ), ConvexIndependent.{u3, u2, u1} π E (Set.Elem.{u1} ΞΉ s) _inst_1 _inst_2 _inst_3 (fun (i : Set.Elem.{u1} ΞΉ s) => p (Subtype.val.{succ u1} ΞΉ (fun (x : ΞΉ) => Membership.mem.{u1, u1} ΞΉ (Set.{u1} ΞΉ) (Set.instMembershipSet.{u1} ΞΉ) x s) i)))
-Case conversion may be inaccurate. Consider using '#align convex_independent.subtype ConvexIndependent.subtypeβ'. -/
/-- If a family is convex independent, so is any subfamily indexed by a subtype of the index type.
-/
protected theorem ConvexIndependent.subtype {p : ΞΉ β E} (hc : ConvexIndependent π p) (s : Set ΞΉ) :
@@ -125,12 +101,6 @@ protected theorem ConvexIndependent.subtype {p : ΞΉ β E} (hc : ConvexIndepende
hc.comp_embedding (Embedding.subtype _)
#align convex_independent.subtype ConvexIndependent.subtype
-/- warning: convex_independent.range -> ConvexIndependent.range is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) _inst_1 _inst_2 _inst_3 (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (Set.range.{u2, succ u3} E ΞΉ p)))))) x))
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u3, u2, u2} π E (Subtype.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (Set.range.{u2, succ u1} E ΞΉ p))) _inst_1 _inst_2 _inst_3 (Subtype.val.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (Set.range.{u2, succ u1} E ΞΉ p))))
-Case conversion may be inaccurate. Consider using '#align convex_independent.range ConvexIndependent.rangeβ'. -/
/-- If an indexed family of points is convex independent, so is the corresponding set of points. -/
protected theorem ConvexIndependent.range {p : ΞΉ β E} (hc : ConvexIndependent π p) :
ConvexIndependent π (fun x => x : Set.range p β E) :=
@@ -164,12 +134,6 @@ theorem Function.Injective.convexIndependent_iff_set {p : ΞΉ β E} (hi : Functi
#align function.injective.convex_independent_iff_set Function.Injective.convexIndependent_iff_set
-/
-/- warning: convex_independent.mem_convex_hull_iff -> ConvexIndependent.mem_convexHull_iff is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u3} ΞΉ) (i : ΞΉ), Iff (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) (Set.image.{u3, u2} ΞΉ E p s))) (Membership.Mem.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.hasMem.{u3} ΞΉ) i s))
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u1} ΞΉ) (i : ΞΉ), Iff (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) (Set.image.{u1, u2} ΞΉ E p s))) (Membership.mem.{u1, u1} ΞΉ (Set.{u1} ΞΉ) (Set.instMembershipSet.{u1} ΞΉ) i s))
-Case conversion may be inaccurate. Consider using '#align convex_independent.mem_convex_hull_iff ConvexIndependent.mem_convexHull_iffβ'. -/
/-- If a family is convex independent, a point in the family is in the convex hull of some of the
points given by a subset of the index type if and only if the point's index is in this subset. -/
@[simp]
@@ -178,12 +142,6 @@ protected theorem ConvexIndependent.mem_convexHull_iff {p : ΞΉ β E} (hc : Conv
β¨hc _ _, fun hi => subset_convexHull π _ (Set.mem_image_of_mem p hi)β©
#align convex_independent.mem_convex_hull_iff ConvexIndependent.mem_convexHull_iff
-/- warning: convex_independent_iff_not_mem_convex_hull_diff -> convexIndependent_iff_not_mem_convexHull_diff is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) (forall (i : ΞΉ) (s : Set.{u3} ΞΉ), Not (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) (Set.image.{u3, u2} ΞΉ E p (SDiff.sdiff.{u3} (Set.{u3} ΞΉ) (BooleanAlgebra.toHasSdiff.{u3} (Set.{u3} ΞΉ) (Set.booleanAlgebra.{u3} ΞΉ)) s (Singleton.singleton.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.hasSingleton.{u3} ΞΉ) i))))))
-but is expected to have type
- forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) (forall (i : ΞΉ) (s : Set.{u1} ΞΉ), Not (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) (Set.image.{u1, u2} ΞΉ E p (SDiff.sdiff.{u1} (Set.{u1} ΞΉ) (Set.instSDiffSet.{u1} ΞΉ) s (Singleton.singleton.{u1, u1} ΞΉ (Set.{u1} ΞΉ) (Set.instSingletonSet.{u1} ΞΉ) i))))))
-Case conversion may be inaccurate. Consider using '#align convex_independent_iff_not_mem_convex_hull_diff convexIndependent_iff_not_mem_convexHull_diffβ'. -/
/-- If a family is convex independent, a point in the family is not in the convex hull of the other
points. See `convex_independent_set_iff_not_mem_convex_hull_diff` for the `set` version. -/
theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
@@ -198,12 +156,6 @@ theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
exact hi
#align convex_independent_iff_not_mem_convex_hull_diff convexIndependent_iff_not_mem_convexHull_diff
-/- warning: convex_independent_set_iff_inter_convex_hull_subset -> convexIndependent_set_iff_inter_convexHull_subset is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) _inst_1 _inst_2 _inst_3 (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s))))) x)) (forall (t : Set.{u2} E), (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) t s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (Inter.inter.{u2} (Set.{u2} E) (Set.hasInter.{u2} E) s (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) t)) t))
-but is expected to have type
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (Subtype.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s)) _inst_1 _inst_2 _inst_3 (Subtype.val.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s))) (forall (t : Set.{u2} E), (HasSubset.Subset.{u2} (Set.{u2} E) (Set.instHasSubsetSet.{u2} E) t s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.instHasSubsetSet.{u2} E) (Inter.inter.{u2} (Set.{u2} E) (Set.instInterSet.{u2} E) s (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.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) t)) t))
-Case conversion may be inaccurate. Consider using '#align convex_independent_set_iff_inter_convex_hull_subset convexIndependent_set_iff_inter_convexHull_subsetβ'. -/
theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
ConvexIndependent π (fun x => x : s β E) β β t, t β s β s β© convexHull π t β t :=
by
@@ -217,12 +169,6 @@ theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
exact hc (t.image coe) (Subtype.coe_image_subset s t) β¨x.prop, hβ©
#align convex_independent_set_iff_inter_convex_hull_subset convexIndependent_set_iff_inter_convexHull_subset
-/- warning: convex_independent_set_iff_not_mem_convex_hull_diff -> convexIndependent_set_iff_not_mem_convexHull_diff is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) _inst_1 _inst_2 _inst_3 (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s))))) x)) (forall (x : E), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Not (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) (SDiff.sdiff.{u2} (Set.{u2} E) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E)) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x))))))
-but is expected to have type
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (Subtype.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s)) _inst_1 _inst_2 _inst_3 (Subtype.val.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s))) (forall (x : E), (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Not (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.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) (SDiff.sdiff.{u2} (Set.{u2} E) (Set.instSDiffSet.{u2} E) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.instSingletonSet.{u2} E) x))))))
-Case conversion may be inaccurate. Consider using '#align convex_independent_set_iff_not_mem_convex_hull_diff convexIndependent_set_iff_not_mem_convexHull_diffβ'. -/
/-- If a set is convex independent, a point in the set is not in the convex hull of the other
points. See `convex_independent_iff_not_mem_convex_hull_diff` for the indexed family version. -/
theorem convexIndependent_set_iff_not_mem_convexHull_diff {s : Set E} :
@@ -243,12 +189,6 @@ section LinearOrderedField
variable [LinearOrderedField π] [AddCommGroup E] [Module π E] {s : Set E}
-/- warning: convex_independent_iff_finset -> convexIndependent_iff_finset 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 : 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)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u1, u2, u3} π E ΞΉ (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) _inst_2 _inst_3 p) (forall (s : Finset.{u3} ΞΉ) (x : ΞΉ), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p 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_3) ((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))) (Finset.image.{u3, u2} ΞΉ E (fun (a : E) (b : E) => Classical.propDecidable (Eq.{succ u2} E a b)) p s)))) -> (Membership.Mem.{u3, u3} ΞΉ (Finset.{u3} ΞΉ) (Finset.hasMem.{u3} ΞΉ) x s))
-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 : 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)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u3, u2, u1} π E ΞΉ (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) _inst_2 _inst_3 p) (forall (s : Finset.{u1} ΞΉ) (x : ΞΉ), (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (p 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_3)) (Finset.toSet.{u2} E (Finset.image.{u1, u2} ΞΉ E (fun (a : E) (b : E) => Classical.propDecidable (Eq.{succ u2} E a b)) p s)))) -> (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) x s))
-Case conversion may be inaccurate. Consider using '#align convex_independent_iff_finset convexIndependent_iff_finsetβ'. -/
/-- To check convex independence, one only has to check finsets thanks to CarathΓ©odory's theorem. -/
theorem convexIndependent_iff_finset {p : ΞΉ β E} :
ConvexIndependent π p β
@@ -276,9 +216,6 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
/-! ### Extreme points -/
-/- warning: convex.convex_independent_extreme_points -> Convex.convexIndependent_extremePoints is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex.convex_independent_extreme_points Convex.convexIndependent_extremePointsβ'. -/
theorem Convex.convexIndependent_extremePoints (hs : Convex π s) :
ConvexIndependent π (fun p => p : s.extremePoints π β E) :=
convexIndependent_set_iff_not_mem_convexHull_diff.2 fun x hx h =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -277,10 +277,7 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
/- warning: convex.convex_independent_extreme_points -> Convex.convexIndependent_extremePoints is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : 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)] {s : Set.{u2} E}, (Convex.{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) (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_3)))) s) -> (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) _inst_2 _inst_3 (fun (p : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (Set.extremePoints.{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) (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_3)))) s)))))) p))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {s : Set.{u1} E}, (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s) -> (ConvexIndependent.{u2, u1, u1} π E (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Set.extremePoints.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s))) (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) _inst_2 _inst_3 (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Set.extremePoints.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex.convex_independent_extreme_points Convex.convexIndependent_extremePointsβ'. -/
theorem Convex.convexIndependent_extremePoints (hs : Convex π s) :
ConvexIndependent π (fun p => p : s.extremePoints π β E) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -263,7 +263,7 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
rw [hab, image_singleton, coe_singleton, convexHull_singleton]
exact Set.mem_singleton _
rw [convexHull_eq_union_convexHull_finite_subsets] at hx
- simp_rw [Set.mem_unionα΅’] at hx
+ simp_rw [Set.mem_iUnion] at hx
obtain β¨t, ht, hxβ© := hx
rw [β hp.mem_set_image]
refine' ht _
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: YaΓ«l Dillies, Bhavik Mehta
! This file was ported from Lean 3 source module analysis.convex.independent
-! leanprover-community/mathlib commit fefd8a38be7811574cd2ec2f77d3a393a407f112
+! 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.Extreme
/-!
# Convex independence
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines convex independent families of points.
Convex independence is closely related to affine independence. In both cases, no point can be
mathlib commit https://github.com/leanprover-community/mathlib/commit/2651125b48fc5c170ab1111afd0817c903b1fc6c
@@ -55,14 +55,22 @@ section OrderedSemiring
variable (π) [OrderedSemiring π] [AddCommGroup E] [Module π E] {s t : Set E}
+#print ConvexIndependent /-
/-- An indexed family is said to be convex independent if every point only belongs to convex hulls
of sets containing it. -/
def ConvexIndependent (p : ΞΉ β E) : Prop :=
β (s : Set ΞΉ) (x : ΞΉ), p x β convexHull π (p '' s) β x β s
#align convex_independent ConvexIndependent
+-/
variable {π}
+/- warning: subsingleton.convex_independent -> Subsingleton.convexIndependent is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : Subsingleton.{succ u3} ΞΉ] (p : ΞΉ -> E), ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : Subsingleton.{succ u3} ΞΉ] (p : ΞΉ -> E), ConvexIndependent.{u2, u1, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p
+Case conversion may be inaccurate. Consider using '#align subsingleton.convex_independent Subsingleton.convexIndependentβ'. -/
/-- A family with at most one point is convex independent. -/
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p :=
fun s x hx => by
@@ -71,6 +79,12 @@ theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : Convex
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
+/- warning: convex_independent.injective -> ConvexIndependent.injective is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (Function.Injective.{succ u3, succ u2} ΞΉ E p)
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (Function.Injective.{succ u1, succ u2} ΞΉ E p)
+Case conversion may be inaccurate. Consider using '#align convex_independent.injective ConvexIndependent.injectiveβ'. -/
/-- A convex independent family is injective. -/
protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndependent π p) :
Function.Injective p := by
@@ -79,6 +93,12 @@ protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndepen
exact Set.mem_singleton _
#align convex_independent.injective ConvexIndependent.injective
+/- warning: convex_independent.comp_embedding -> ConvexIndependent.comp_embedding is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {ΞΉ' : Type.{u4}} (f : Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u1, u2, u4} π E ΞΉ' _inst_1 _inst_2 _inst_3 (Function.comp.{succ u4, succ u3, succ u2} ΞΉ' ΞΉ E p (coeFn.{max 1 (succ u4) (succ u3), max (succ u4) (succ u3)} (Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) (fun (_x : Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) => ΞΉ' -> ΞΉ) (Function.Embedding.hasCoeToFun.{succ u4, succ u3} ΞΉ' ΞΉ) f)))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {ΞΉ' : Type.{u4}} (f : Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) {p : ΞΉ -> E}, (ConvexIndependent.{u2, u1, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u2, u1, u4} π E ΞΉ' _inst_1 _inst_2 _inst_3 (Function.comp.{succ u4, succ u3, succ u1} ΞΉ' ΞΉ E p (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) ΞΉ' (fun (_x : ΞΉ') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : ΞΉ') => ΞΉ) _x) (EmbeddingLike.toFunLike.{max (succ u3) (succ u4), succ u4, succ u3} (Function.Embedding.{succ u4, succ u3} ΞΉ' ΞΉ) ΞΉ' ΞΉ (Function.instEmbeddingLikeEmbedding.{succ u4, succ u3} ΞΉ' ΞΉ)) f)))
+Case conversion may be inaccurate. Consider using '#align convex_independent.comp_embedding ConvexIndependent.comp_embeddingβ'. -/
/-- If a family is convex independent, so is any subfamily given by composition of an embedding into
index type with the original family. -/
theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ β E}
@@ -89,6 +109,12 @@ theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ
exact hc _ _ (by rwa [Set.image_image])
#align convex_independent.comp_embedding ConvexIndependent.comp_embedding
+/- warning: convex_independent.subtype -> ConvexIndependent.subtype is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u3} ΞΉ), ConvexIndependent.{u1, u2, u3} π E (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) _inst_1 _inst_2 _inst_3 (fun (i : coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) => p ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (CoeTCβ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} ΞΉ) Type.{u3} (Set.hasCoeToSort.{u3} ΞΉ) s) ΞΉ (coeSubtype.{succ u3} ΞΉ (fun (x : ΞΉ) => Membership.Mem.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.hasMem.{u3} ΞΉ) x s))))) i)))
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u1} ΞΉ), ConvexIndependent.{u3, u2, u1} π E (Set.Elem.{u1} ΞΉ s) _inst_1 _inst_2 _inst_3 (fun (i : Set.Elem.{u1} ΞΉ s) => p (Subtype.val.{succ u1} ΞΉ (fun (x : ΞΉ) => Membership.mem.{u1, u1} ΞΉ (Set.{u1} ΞΉ) (Set.instMembershipSet.{u1} ΞΉ) x s) i)))
+Case conversion may be inaccurate. Consider using '#align convex_independent.subtype ConvexIndependent.subtypeβ'. -/
/-- If a family is convex independent, so is any subfamily indexed by a subtype of the index type.
-/
protected theorem ConvexIndependent.subtype {p : ΞΉ β E} (hc : ConvexIndependent π p) (s : Set ΞΉ) :
@@ -96,6 +122,12 @@ protected theorem ConvexIndependent.subtype {p : ΞΉ β E} (hc : ConvexIndepende
hc.comp_embedding (Embedding.subtype _)
#align convex_independent.subtype ConvexIndependent.subtype
+/- warning: convex_independent.range -> ConvexIndependent.range is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) _inst_1 _inst_2 _inst_3 (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, succ u3} E ΞΉ p)) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (Set.range.{u2, succ u3} E ΞΉ p)))))) x))
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (ConvexIndependent.{u3, u2, u2} π E (Subtype.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (Set.range.{u2, succ u1} E ΞΉ p))) _inst_1 _inst_2 _inst_3 (Subtype.val.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x (Set.range.{u2, succ u1} E ΞΉ p))))
+Case conversion may be inaccurate. Consider using '#align convex_independent.range ConvexIndependent.rangeβ'. -/
/-- If an indexed family of points is convex independent, so is the corresponding set of points. -/
protected theorem ConvexIndependent.range {p : ΞΉ β E} (hc : ConvexIndependent π p) :
ConvexIndependent π (fun x => x : Set.range p β E) :=
@@ -108,13 +140,16 @@ protected theorem ConvexIndependent.range {p : ΞΉ β E} (hc : ConvexIndependent
rw [embedding.coe_fn_mk, comp_app, hf]
#align convex_independent.range ConvexIndependent.range
+#print ConvexIndependent.mono /-
/-- A subset of a convex independent set of points is convex independent as well. -/
protected theorem ConvexIndependent.mono {s t : Set E}
(hc : ConvexIndependent π (fun x => x : t β E)) (hs : s β t) :
ConvexIndependent π (fun x => x : s β E) :=
hc.comp_embedding (s.embeddingOfSubset t hs)
#align convex_independent.mono ConvexIndependent.mono
+-/
+#print Function.Injective.convexIndependent_iff_set /-
/-- The range of an injective indexed family of points is convex independent iff that family is. -/
theorem Function.Injective.convexIndependent_iff_set {p : ΞΉ β E} (hi : Function.Injective p) :
ConvexIndependent π (fun x => x : Set.range p β E) β ConvexIndependent π p :=
@@ -124,7 +159,14 @@ theorem Function.Injective.convexIndependent_iff_set {p : ΞΉ β E} (hi : Functi
ΞΉ βͺ Set.range p),
ConvexIndependent.rangeβ©
#align function.injective.convex_independent_iff_set Function.Injective.convexIndependent_iff_set
+-/
+/- warning: convex_independent.mem_convex_hull_iff -> ConvexIndependent.mem_convexHull_iff is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u3} ΞΉ) (i : ΞΉ), Iff (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) (Set.image.{u3, u2} ΞΉ E p s))) (Membership.Mem.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.hasMem.{u3} ΞΉ) i s))
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) -> (forall (s : Set.{u1} ΞΉ) (i : ΞΉ), Iff (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) (Set.image.{u1, u2} ΞΉ E p s))) (Membership.mem.{u1, u1} ΞΉ (Set.{u1} ΞΉ) (Set.instMembershipSet.{u1} ΞΉ) i s))
+Case conversion may be inaccurate. Consider using '#align convex_independent.mem_convex_hull_iff ConvexIndependent.mem_convexHull_iffβ'. -/
/-- If a family is convex independent, a point in the family is in the convex hull of some of the
points given by a subset of the index type if and only if the point's index is in this subset. -/
@[simp]
@@ -133,6 +175,12 @@ protected theorem ConvexIndependent.mem_convexHull_iff {p : ΞΉ β E} (hc : Conv
β¨hc _ _, fun hi => subset_convexHull π _ (Set.mem_image_of_mem p hi)β©
#align convex_independent.mem_convex_hull_iff ConvexIndependent.mem_convexHull_iff
+/- warning: convex_independent_iff_not_mem_convex_hull_diff -> convexIndependent_iff_not_mem_convexHull_diff is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {ΞΉ : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u1, u2, u3} π E ΞΉ _inst_1 _inst_2 _inst_3 p) (forall (i : ΞΉ) (s : Set.{u3} ΞΉ), Not (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) (Set.image.{u3, u2} ΞΉ E p (SDiff.sdiff.{u3} (Set.{u3} ΞΉ) (BooleanAlgebra.toHasSdiff.{u3} (Set.{u3} ΞΉ) (Set.booleanAlgebra.{u3} ΞΉ)) s (Singleton.singleton.{u3, u3} ΞΉ (Set.{u3} ΞΉ) (Set.hasSingleton.{u3} ΞΉ) i))))))
+but is expected to have type
+ forall {π : Type.{u3}} {E : Type.{u2}} {ΞΉ : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u3, u2} π E (OrderedSemiring.toSemiring.{u3} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u3, u2, u1} π E ΞΉ _inst_1 _inst_2 _inst_3 p) (forall (i : ΞΉ) (s : Set.{u1} ΞΉ), Not (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (p i) (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) (Set.image.{u1, u2} ΞΉ E p (SDiff.sdiff.{u1} (Set.{u1} ΞΉ) (Set.instSDiffSet.{u1} ΞΉ) s (Singleton.singleton.{u1, u1} ΞΉ (Set.{u1} ΞΉ) (Set.instSingletonSet.{u1} ΞΉ) i))))))
+Case conversion may be inaccurate. Consider using '#align convex_independent_iff_not_mem_convex_hull_diff convexIndependent_iff_not_mem_convexHull_diffβ'. -/
/-- If a family is convex independent, a point in the family is not in the convex hull of the other
points. See `convex_independent_set_iff_not_mem_convex_hull_diff` for the `set` version. -/
theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
@@ -147,6 +195,12 @@ theorem convexIndependent_iff_not_mem_convexHull_diff {p : ΞΉ β E} :
exact hi
#align convex_independent_iff_not_mem_convex_hull_diff convexIndependent_iff_not_mem_convexHull_diff
+/- warning: convex_independent_set_iff_inter_convex_hull_subset -> convexIndependent_set_iff_inter_convexHull_subset is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) _inst_1 _inst_2 _inst_3 (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s))))) x)) (forall (t : Set.{u2} E), (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) t s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) (Inter.inter.{u2} (Set.{u2} E) (Set.hasInter.{u2} E) s (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) t)) t))
+but is expected to have type
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (Subtype.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s)) _inst_1 _inst_2 _inst_3 (Subtype.val.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s))) (forall (t : Set.{u2} E), (HasSubset.Subset.{u2} (Set.{u2} E) (Set.instHasSubsetSet.{u2} E) t s) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.instHasSubsetSet.{u2} E) (Inter.inter.{u2} (Set.{u2} E) (Set.instInterSet.{u2} E) s (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.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) t)) t))
+Case conversion may be inaccurate. Consider using '#align convex_independent_set_iff_inter_convex_hull_subset convexIndependent_set_iff_inter_convexHull_subsetβ'. -/
theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
ConvexIndependent π (fun x => x : s β E) β β t, t β s β s β© convexHull π t β t :=
by
@@ -160,6 +214,12 @@ theorem convexIndependent_set_iff_inter_convexHull_subset {s : Set E} :
exact hc (t.image coe) (Subtype.coe_image_subset s t) β¨x.prop, hβ©
#align convex_independent_set_iff_inter_convex_hull_subset convexIndependent_set_iff_inter_convexHull_subset
+/- warning: convex_independent_set_iff_not_mem_convex_hull_diff -> convexIndependent_set_iff_not_mem_convexHull_diff is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) _inst_1 _inst_2 _inst_3 (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) s) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s))))) x)) (forall (x : E), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Not (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 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3) (SDiff.sdiff.{u2} (Set.{u2} E) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E)) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.hasSingleton.{u2} E) x))))))
+but is expected to have type
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] {s : Set.{u2} E}, Iff (ConvexIndependent.{u1, u2, u2} π E (Subtype.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s)) _inst_1 _inst_2 _inst_3 (Subtype.val.{succ u2} E (fun (x : E) => Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s))) (forall (x : E), (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Not (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.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)) (SDiff.sdiff.{u2} (Set.{u2} E) (Set.instSDiffSet.{u2} E) s (Singleton.singleton.{u2, u2} E (Set.{u2} E) (Set.instSingletonSet.{u2} E) x))))))
+Case conversion may be inaccurate. Consider using '#align convex_independent_set_iff_not_mem_convex_hull_diff convexIndependent_set_iff_not_mem_convexHull_diffβ'. -/
/-- If a set is convex independent, a point in the set is not in the convex hull of the other
points. See `convex_independent_iff_not_mem_convex_hull_diff` for the indexed family version. -/
theorem convexIndependent_set_iff_not_mem_convexHull_diff {s : Set E} :
@@ -180,6 +240,12 @@ section LinearOrderedField
variable [LinearOrderedField π] [AddCommGroup E] [Module π E] {s : Set E}
+/- warning: convex_independent_iff_finset -> convexIndependent_iff_finset 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 : 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)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u1, u2, u3} π E ΞΉ (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) _inst_2 _inst_3 p) (forall (s : Finset.{u3} ΞΉ) (x : ΞΉ), (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (p 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_3) ((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))) (Finset.image.{u3, u2} ΞΉ E (fun (a : E) (b : E) => Classical.propDecidable (Eq.{succ u2} E a b)) p s)))) -> (Membership.Mem.{u3, u3} ΞΉ (Finset.{u3} ΞΉ) (Finset.hasMem.{u3} ΞΉ) x s))
+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 : 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)] {p : ΞΉ -> E}, Iff (ConvexIndependent.{u3, u2, u1} π E ΞΉ (OrderedCommSemiring.toOrderedSemiring.{u3} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} π (LinearOrderedField.toLinearOrderedSemifield.{u3} π _inst_1))))) _inst_2 _inst_3 p) (forall (s : Finset.{u1} ΞΉ) (x : ΞΉ), (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (p 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_3)) (Finset.toSet.{u2} E (Finset.image.{u1, u2} ΞΉ E (fun (a : E) (b : E) => Classical.propDecidable (Eq.{succ u2} E a b)) p s)))) -> (Membership.mem.{u1, u1} ΞΉ (Finset.{u1} ΞΉ) (Finset.instMembershipFinset.{u1} ΞΉ) x s))
+Case conversion may be inaccurate. Consider using '#align convex_independent_iff_finset convexIndependent_iff_finsetβ'. -/
/-- To check convex independence, one only has to check finsets thanks to CarathΓ©odory's theorem. -/
theorem convexIndependent_iff_finset {p : ΞΉ β E} :
ConvexIndependent π p β
@@ -207,6 +273,12 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
/-! ### Extreme points -/
+/- warning: convex.convex_independent_extreme_points -> Convex.convexIndependent_extremePoints is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : 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)] {s : Set.{u2} E}, (Convex.{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) (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_3)))) s) -> (ConvexIndependent.{u1, u2, u2} π E (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) _inst_2 _inst_3 (fun (p : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (CoeTCβ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.extremePoints.{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) (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_3)))) s)) E (coeSubtype.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (Set.extremePoints.{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) (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_3)))) s)))))) p))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] {s : Set.{u1} E}, (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s) -> (ConvexIndependent.{u2, u1, u1} π E (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Set.extremePoints.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s))) (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) _inst_2 _inst_3 (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Set.extremePoints.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s))))
+Case conversion may be inaccurate. Consider using '#align convex.convex_independent_extreme_points Convex.convexIndependent_extremePointsβ'. -/
theorem Convex.convexIndependent_extremePoints (hs : Convex π s) :
ConvexIndependent π (fun p => p : s.extremePoints π β E) :=
convexIndependent_set_iff_not_mem_convexHull_diff.2 fun x hx h =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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.
@@ -42,7 +42,8 @@ independence, convex position
-/
-open Affine BigOperators Classical
+open scoped Classical
+open Affine BigOperators
open Finset Function
Nonempty
arguments (#9377)
Finset.Nonempty.image_iff
to Finset.image_nonempty
, deprecate the old version;Set.nonempty_image_iff
to Set.image_nonempty
, deprecate the old version;Finset.Nonempty
arguments here and there;Nonempty s
instead of Nonempty (s.image f)
or Nonempty (s.map f)
.@@ -64,7 +64,7 @@ variable {π}
theorem Subsingleton.convexIndependent [Subsingleton ΞΉ] (p : ΞΉ β E) : ConvexIndependent π p := by
intro s x hx
have : (convexHull π (p '' s)).Nonempty := β¨p x, hxβ©
- rw [convexHull_nonempty_iff, Set.nonempty_image_iff] at this
+ rw [convexHull_nonempty_iff, Set.image_nonempty] at this
rwa [Subsingleton.mem_iff_nonempty]
#align subsingleton.convex_independent Subsingleton.convexIndependent
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -46,7 +46,7 @@ open Affine BigOperators Classical
open Finset Function
-variable {π E ΞΉ : Type _}
+variable {π E ΞΉ : Type*}
section OrderedSemiring
@@ -78,7 +78,7 @@ protected theorem ConvexIndependent.injective {p : ΞΉ β E} (hc : ConvexIndepen
/-- If a family is convex independent, so is any subfamily given by composition of an embedding into
index type with the original family. -/
-theorem ConvexIndependent.comp_embedding {ΞΉ' : Type _} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ β E}
+theorem ConvexIndependent.comp_embedding {ΞΉ' : Type*} (f : ΞΉ' βͺ ΞΉ) {p : ΞΉ β E}
(hc : ConvexIndependent π p) : ConvexIndependent π (p β f) := by
intro s x hx
rw [β f.injective.mem_set_image]
@@ -2,15 +2,12 @@
Copyright (c) 2021 YaΓ«l Dillies, Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: YaΓ«l Dillies, Bhavik Mehta
-
-! This file was ported from Lean 3 source module analysis.convex.independent
-! leanprover-community/mathlib commit fefd8a38be7811574cd2ec2f77d3a393a407f112
-! 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.Extreme
+#align_import analysis.convex.independent from "leanprover-community/mathlib"@"fefd8a38be7811574cd2ec2f77d3a393a407f112"
+
/-!
# Convex independence
sSup
/iSup
(#3938)
As discussed on Zulip
supβ
β sSup
infβ
β sInf
supα΅’
β iSup
infα΅’
β iInf
bsupβ
β bsSup
binfβ
β bsInf
bsupα΅’
β biSup
binfα΅’
β biInf
csupβ
β csSup
cinfβ
β csInf
csupα΅’
β ciSup
cinfα΅’
β ciInf
unionβ
β sUnion
interβ
β sInter
unionα΅’
β iUnion
interα΅’
β iInter
bunionβ
β bsUnion
binterβ
β bsInter
bunionα΅’
β biUnion
binterα΅’
β biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -187,7 +187,7 @@ theorem convexIndependent_iff_finset {p : ΞΉ β E} :
rw [hab, image_singleton, coe_singleton, convexHull_singleton]
exact Set.mem_singleton _
rw [convexHull_eq_union_convexHull_finite_subsets] at hx
- simp_rw [Set.mem_unionα΅’] at hx
+ simp_rw [Set.mem_iUnion] at hx
obtain β¨t, ht, hxβ© := hx
rw [β hp.mem_set_image]
refine' ht _
The unported dependencies are