Zulip Chat Archive

Stream: mathlib4

Topic: Best place for convex combination and simplex interior


Chu Zheng (Jan 17 2026 at 04:39):

I would like to ask for advice on the best place in mathlib for the following three lemmas about convex combinations and the interior of a simplex.

/-- For a given simplex, a point strictly between a point in its closed interior
and a point in its interior lies in its interior. -/
lemma Simplex.mem_interior_of_lineMap_closedInterior_interior [IsStrictOrderedRing k] {n : }
    (s : Simplex k P n) {p q : P} (hp : p  s.closedInterior) (hq : q  s.interior) {t : k}
    (ht : t  Set.Ioo 0 1) :
    AffineMap.lineMap p q t  s.interior := by

/-- For a given simplex, a point strictly between a vertex and a point in the interior of
the opposite face lies in its interior. -/
lemma Simplex.mem_interior_of_lineMap_point_faceOpposite_interior [IsStrictOrderedRing k] {n : }
    [NeZero n] (s : Simplex k P n) {i : Fin (n + 1)} {q : P} (hq : q  (s.faceOpposite i).interior)
    {t : k} (ht : t  Set.Ioo 0 1) :
    AffineMap.lineMap (s.points i) q t  s.interior := by

/-- For a given simplex, a point strictly between a point in the interior of one face and a point
in the interior of its complementary face lies in its interior. -/
lemma mem_interior_of_lineMap_face_interior_face_interior_compl [IsStrictOrderedRing k]
    {n mf mg : } (s : Simplex k P n) {fs gs : Finset (Fin (n + 1))} (hfs : #fs = mf + 1)
    (hgs : #gs = mg + 1) (hcompl : IsCompl fs gs) {p q : P} (hp : p  (s.face hfs).interior)
    (hq : q  (s.face hgs).interior) {t : k} (ht : t  Set.Ioo 0 1) :
    AffineMap.lineMap p q t  s.interior := by

These are straightforward facts about convex combinations preserving membership in the interior of a simplex.

Currently there is an Analysis/Convex/Between file containing many lemmas about sbtw.
Another candidate location is close to the Simplex.interior definition, e.g. LinearAlgebra/AffineSpace/Simplex/Basic. Which placement is preferred?

I did not formulate these lemmas using sbtw, because sbtw additionally requires the two endpoints to be distinct.

So my questions are:

  • What is the best file for these lemmas?
  • Should I change the statements to use sbtw rather than AffineMap.lineMap?
  • Furthermore, do we need a separate file for convex results in affine spaces, especially those specific to Affine.Simplex?

Any guidance on the preferred organization would be appreciated. Thanks!


Last updated: Feb 28 2026 at 14:05 UTC