Documentation

Mathlib.Analysis.Convex.BetweenList

Betweenness for lists of points. #

This file defines notions of lists of points in an affine space being in order on a line.

Main definitions #

def List.Wbtw (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] (l : List P) :

The points in a list are weakly in that order on a line.

Equations
Instances For
    theorem List.wbtw_cons {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] {p : P} {l : List P} :
    List.Wbtw R (p :: l) ↔ Pairwise (Wbtw R p) l ∧ List.Wbtw R l
    def List.Sbtw (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] (l : List P) :

    The points in a list are strictly in that order on a line.

    Equations
    Instances For
      @[simp]
      theorem List.wbtw_nil (R : Type u_1) {V : Type u_2} (P : Type u_4) [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] :
      @[simp]
      theorem List.sbtw_nil (R : Type u_1) {V : Type u_2} (P : Type u_4) [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] :
      @[simp]
      theorem List.wbtw_singleton (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] (p₁ : P) :
      @[simp]
      theorem List.sbtw_singleton (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] (p₁ : P) :
      @[simp]
      theorem List.wbtw_pair (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] (p₁ p₂ : P) :
      List.Wbtw R [p₁, p₂]
      @[simp]
      theorem List.sbtw_pair (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] {p₁ p₂ : P} :
      List.Sbtw R [p₁, p₂] ↔ p₁ ≠ p₂
      @[simp]
      theorem List.wbtw_triple {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] {p₁ p₂ p₃ : P} :
      List.Wbtw R [p₁, p₂, p₃] ↔ Wbtw R p₁ p₂ p₃
      @[simp]
      theorem List.sbtw_triple {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [IsOrderedRing R] {p₁ p₂ p₃ : P} :
      List.Sbtw R [p₁, p₂, p₃] ↔ Sbtw R p₁ p₂ p₃
      theorem List.wbtw_four {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] {p₁ p₂ p₃ p₄ : P} :
      List.Wbtw R [p₁, p₂, p₃, p₄] ↔ Wbtw R p₁ p₂ p₃ ∧ Wbtw R p₁ p₂ p₄ ∧ Wbtw R p₁ p₃ p₄ ∧ Wbtw R p₂ p₃ p₄
      theorem List.sbtw_four {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [IsOrderedRing R] {p₁ p₂ p₃ p₄ : P} :
      List.Sbtw R [p₁, p₂, p₃, p₄] ↔ Sbtw R p₁ p₂ p₃ ∧ Sbtw R p₁ p₂ p₄ ∧ Sbtw R p₁ p₃ p₄ ∧ Sbtw R p₂ p₃ p₄
      theorem List.Sbtw.wbtw {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] {l : List P} (h : List.Sbtw R l) :
      theorem List.Sbtw.pairwise_ne {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] {l : List P} (h : List.Sbtw R l) :
      Pairwise (fun (x1 x2 : P) => x1 ≠ x2) l
      theorem List.sbtw_iff_triplewise_and_ne_pair {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [IsOrderedRing R] {l : List P} :
      List.Sbtw R l ↔ Triplewise (Sbtw R) l ∧ ∀ (a : P), l ≠ [a, a]
      theorem List.sbtw_cons {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [IsOrderedRing R] {p : P} {l : List P} :
      List.Sbtw R (p :: l) ↔ Pairwise (Sbtw R p) l ∧ List.Sbtw R l ∧ l ≠ [p]
      theorem List.Wbtw.map {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] {l : List P} (h : List.Wbtw R l) (f : P →ᵃ[R] P') :
      List.Wbtw R (map (⇑f) l)
      theorem Function.Injective.list_wbtw_map_iff {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] {l : List P} {f : P →ᵃ[R] P'} (hf : Injective ⇑f) :
      List.Wbtw R (List.map (⇑f) l) ↔ List.Wbtw R l
      theorem Function.Injective.list_sbtw_map_iff {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] {l : List P} {f : P →ᵃ[R] P'} (hf : Injective ⇑f) :
      List.Sbtw R (List.map (⇑f) l) ↔ List.Sbtw R l
      theorem AffineEquiv.list_wbtw_map_iff {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] {l : List P} (f : P ≃ᵃ[R] P') :
      List.Wbtw R (List.map (⇑f) l) ↔ List.Wbtw R l
      theorem AffineEquiv.list_sbtw_map_iff {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [PartialOrder R] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] {l : List P} (f : P ≃ᵃ[R] P') :
      List.Sbtw R (List.map (⇑f) l) ↔ List.Sbtw R l
      theorem List.SortedLE.wbtw {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] {l : List R} (h : l.SortedLE) :
      @[deprecated List.SortedLE.wbtw (since := "2025-10-13")]
      theorem List.Sorted.wbtw {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] {l : List R} (h : l.SortedLE) :

      Alias of List.SortedLE.wbtw.

      theorem List.SortedLT.sbtw {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] {l : List R} (h : l.SortedLT) :
      @[deprecated List.SortedLT.sbtw (since := "2025-10-13")]
      theorem List.Sorted.sbtw {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] {l : List R} (h : l.SortedLT) :

      Alias of List.SortedLT.sbtw.

      theorem List.exists_map_eq_of_sorted_nonempty_iff_wbtw {R : Type u_1} {V : Type u_2} {P : Type u_4} [Field R] [LinearOrder R] [IsStrictOrderedRing R] [AddCommGroup V] [Module R V] [AddTorsor V P] {l : List P} (hl : l ≠ []) :
      (∃ (l' : List R), l'.SortedLE ∧ map (⇑(AffineMap.lineMap (l.head hl) (l.getLast hl))) l' = l) ↔ List.Wbtw R l
      theorem List.exists_map_eq_of_sorted_iff_wbtw {R : Type u_1} {V : Type u_2} {P : Type u_4} [Field R] [LinearOrder R] [IsStrictOrderedRing R] [AddCommGroup V] [Module R V] [AddTorsor V P] {l : List P} :
      (∃ (p₁ : P) (p₂ : P) (l' : List R), l'.SortedLE ∧ map (⇑(AffineMap.lineMap p₁ p₂)) l' = l) ↔ List.Wbtw R l
      theorem List.exists_map_eq_of_sorted_nonempty_iff_sbtw {R : Type u_1} {V : Type u_2} {P : Type u_4} [Field R] [LinearOrder R] [IsStrictOrderedRing R] [AddCommGroup V] [Module R V] [AddTorsor V P] {l : List P} (hl : l ≠ []) :
      (∃ (l' : List R), l'.SortedLT ∧ map (⇑(AffineMap.lineMap (l.head hl) (l.getLast hl))) l' = l ∧ (l.length = 1 ∨ l.head hl ≠ l.getLast hl)) ↔ List.Sbtw R l
      theorem List.exists_map_eq_of_sorted_iff_sbtw {R : Type u_1} {V : Type u_2} {P : Type u_4} [Field R] [LinearOrder R] [IsStrictOrderedRing R] [AddCommGroup V] [Module R V] [AddTorsor V P] [Nontrivial P] {l : List P} :
      (∃ (p₁ : P) (p₂ : P), p₁ ≠ p₂ ∧ ∃ (l' : List R), l'.SortedLT ∧ map (⇑(AffineMap.lineMap p₁ p₂)) l' = l) ↔ List.Sbtw R l