- mk {V : Type u_1} [MetricSpace V] {u v w : V} (h : sbtw u v w) : {u, v, w}.collinearTriple
Instances For
- basic {V : Type u_1} [MetricSpace V] {s : Set V} {x : V} : x ∈ s → IsGenerated s x
- extend_out {V : Type u_1} [MetricSpace V] {s : Set V} (u v w : V) : IsGenerated s u → IsGenerated s v → sbtw u v w → IsGenerated s w
- extend_in {V : Type u_1} [MetricSpace V] {s : Set V} (u v w : V) : IsGenerated s u → IsGenerated s v → sbtw u w v → IsGenerated s w
Instances For
Equations
- GenerateLine s = Set.ofPred (IsGenerated s)
Instances For
theorem generateLine_close_right {V : Type u_1} [MetricSpace V] {s : Set V} {x y z : V} (hx : x ∈ GenerateLine s) (hy : y ∈ GenerateLine s) (h : sbtw x y z) :
theorem generateLine_close_left {V : Type u_1} [MetricSpace V] {s : Set V} {x y z : V} (hx : x ∈ GenerateLine s) (hy : y ∈ GenerateLine s) (h : sbtw z x y) :
theorem generateLine_close_middle {V : Type u_1} [MetricSpace V] {s : Set V} {x y z : V} (hx : x ∈ GenerateLine s) (hy : y ∈ GenerateLine s) (h : sbtw x z y) :
theorem generateLine_minimal {V : Type u_1} [MetricSpace V] {S L : Set V} (hL₀ : S ⊆ L) (out_closed : ∀ {x y z : V}, x ∈ L → y ∈ L → sbtw x y z → z ∈ L) (in_closed : ∀ {x y z : V}, x ∈ L → y ∈ L → sbtw x z y → z ∈ L) :
GenerateLine S ⊆ L
theorem Set.IsLine.close_right {V : Type u_1} [MetricSpace V] {L : Set V} (hL : L.IsLine) {a b c : V} (ha : a ∈ L) (hb : b ∈ L) (hc : sbtw a b c) :
theorem Set.IsLine.close_left {V : Type u_1} [MetricSpace V] {L : Set V} (hL : L.IsLine) {a b c : V} (ha : a ∈ L) (hb : b ∈ L) (hc : sbtw c a b) :
theorem Set.IsLine.close_middle {V : Type u_1} [MetricSpace V] {L : Set V} (hL : L.IsLine) {a b c : V} (ha : a ∈ L) (hb : b ∈ L) (hc : sbtw a c b) :
theorem Set.IsLine.generateLine_subset {V : Type u_1} [MetricSpace V] {S L : Set V} (hL₀ : S ⊆ L) (hL : L.IsLine) :
GenerateLine S ⊆ L
theorem NotCollinear.rotate {V : Type u_1} [MetricSpace V] {u v w : V} (h : NotCollinear u v w) :
NotCollinear v w u
theorem NotCollinear.swap {V : Type u_1} [MetricSpace V] {u v w : V} (h : NotCollinear u v w) :
NotCollinear w v u
theorem NotCollinear.mk {V : Type u_1} [MetricSpace V] {x y z : V} [Nontrivial V] (hl : ∀ (l : Set V), l.IsLine → ¬{x, y, z} ⊆ l) :
NotCollinear x y z
theorem thm_two {V : Type u_1} [MetricSpace V] [Nontrivial V] [Finite V] (h : ∀ (x y z : V), ¬NotCollinear x y z) :
theorem thm_two' {V : Type u_1} [MetricSpace V] [Nontrivial V] [Finite V] (h : ∀ (x y z : V), ¬NotCollinear x y z) :
Equations
Instances For
@[simp]
Equations
- IsSimpleTriangle x y z = (simpleEdges.Adj x y ∧ simpleEdges.Adj y z ∧ simpleEdges.Adj z x ∧ NotCollinear x y z)
Instances For
theorem IsSimpleTriangle.swap {V : Type u_1} [MetricSpace V] {u v w : V} (h : IsSimpleTriangle u v w) :
IsSimpleTriangle w v u
theorem one_implies_two {V : Type u_1} [MetricSpace V] [Finite V] (h : ∃ (x : V) (y : V) (z : V), NotCollinear x y z) :
∃ (x : V) (y : V) (z : V), IsSimpleTriangle x y z
theorem eqn_7 {V : Type u_1} [MetricSpace V] {a b c d : V} (habc : IsSimpleTriangle a b c) (habc_min : ∀ (a' b' c' : V), IsSimpleTriangle a' b' c' → Delta a b c ≤ Delta a' b' c') (hacd : sbtw a c d) (hcd : simpleEdges.Adj c d) :
¬simpleEdges.Adj b d
Equations
- [].pathLength = 0
- [head].pathLength = 0
- (x_1 :: y :: xs).pathLength = dist x_1 y + (y :: xs).pathLength
Instances For
theorem List.Sublist.pathLength_sublist {V : Type u_1} [MetricSpace V] {l₁ l₂ : List V} :
l₁.Sublist l₂ → l₁.pathLength ≤ l₂.pathLength
Equations
Instances For
theorem List.Special.pathLength_le {V : Type u_1} [MetricSpace V] {a b d : V} {P : List V} :
Special a b d P → P.pathLength ≤ [a, b, d].pathLength
theorem length_mul_le_pathLength_add {V : Type u_1} [MetricSpace V] {r : ℝ} (hr : 0 ≤ r) (h : ∀ (x y : V), x ≠ y → r ≤ dist x y) {l : List V} :
List.IsChain (fun (x1 x2 : V) => x1 ≠ x2) l → ↑l.length * r ≤ l.pathLength + r
theorem uniformly_bounded_of_chain_ne_of_pathLength_le (V : Type u_2) [MetricSpace V] [Finite V] (R : ℝ) :
∃ (n : ℕ), ∀ (l : List V), List.IsChain (fun (x1 x2 : V) => x1 ≠ x2) l → l.pathLength ≤ R → l.length ≤ n
theorem abd_special {V : Type u_1} [MetricSpace V] {a b c d : V} (habc : IsSimpleTriangle a b c) (hacd : sbtw a c d) (hbd' : b ≠ d) (hbd : ¬simpleEdges.Adj b d) :
List.Special a b d [a, b, d]
theorem eqn_9 {V : Type u_1} [MetricSpace V] {a b c d : V} {P : List V} (habc : IsSimpleTriangle a b c) (hacd : sbtw a c d) (hbd' : b ≠ d) (hbd : ¬simpleEdges.Adj b d) (hP' : ∀ (P' : List V), List.Special a b d P' → P.pathLength ≤ P'.pathLength) :
theorem exists_simple_split_right {V : Type u_1} [MetricSpace V] [Finite V] {a b : V} (hab : a ≠ b) (hab' : ¬simpleEdges.Adj a b) :
∃ (c : V), sbtw a c b ∧ simpleEdges.Adj c b
theorem exists_simple_split_left {V : Type u_1} [MetricSpace V] [Finite V] {a b : V} (hab : a ≠ b) (hab' : ¬simpleEdges.Adj a b) :
∃ (c : V), sbtw a c b ∧ simpleEdges.Adj a c
theorem case1 {V : Type u_1} [MetricSpace V] [Finite V] [Nontrivial V] {a b c d a₁ a₂ a₃ : V} {l : List V} (habc : IsSimpleTriangle a b c) (habc_min : ∀ (a' b' c' : V), IsSimpleTriangle a' b' c' → Delta a b c ≤ Delta a' b' c') (hacd : sbtw a c d) (hbd' : b ≠ d) (hbd : ¬simpleEdges.Adj b d) (hPmin : ∀ (P' : List V), List.Special a b d P' → (a₁ :: a₂ :: a₃ :: l).pathLength ≤ P'.pathLength) (ha₁ : a₁ = a) (hα : NotCollinear a₁ a₂ a₃) (hPd : (a₁ :: a₂ :: a₃ :: l).getLast ⋯ = d) (hPc : List.IsChain (fun (x1 x2 : V) => x1 ≠ x2) (a₁ :: a₂ :: a₃ :: l)) (c₁1 : ¬simpleEdges.Adj a₁ a₂) (c₁2 : ¬simpleEdges.Adj a₂ a₃) :
theorem case2 {V : Type u_1} [MetricSpace V] [Finite V] [Nontrivial V] {a b c d a₁ a₂ a₃ : V} {l : List V} (habc : IsSimpleTriangle a b c) (habc_min : ∀ (a' b' c' : V), IsSimpleTriangle a' b' c' → Delta a b c ≤ Delta a' b' c') (hacd : sbtw a c d) (hbd' : b ≠ d) (hbd : ¬simpleEdges.Adj b d) (hPmin : ∀ (P' : List V), List.Special a b d P' → (a₁ :: a₂ :: a₃ :: l).pathLength ≤ P'.pathLength) (ha₁ : a₁ = a) (hα : NotCollinear a₁ a₂ a₃) (hPd : (a₁ :: a₂ :: a₃ :: l).getLast ⋯ = d) (hPc : List.IsChain (fun (x1 x2 : V) => x1 ≠ x2) (a₁ :: a₂ :: a₃ :: l)) (c₁1 : simpleEdges.Adj a₁ a₂) (c₁2 : ¬simpleEdges.Adj a₂ a₃) :
theorem case3 {V : Type u_1} [MetricSpace V] [Finite V] [Nontrivial V] {a b c d a₁ a₂ a₃ : V} {l : List V} (habc : IsSimpleTriangle a b c) (habc_min : ∀ (a' b' c' : V), IsSimpleTriangle a' b' c' → Delta a b c ≤ Delta a' b' c') (hacd : sbtw a c d) (hbd' : b ≠ d) (hbd : ¬simpleEdges.Adj b d) (hPmin : ∀ (P' : List V), List.Special a b d P' → (a₁ :: a₂ :: a₃ :: l).pathLength ≤ P'.pathLength) (ha₁ : a₁ = a) (hα : NotCollinear a₁ a₂ a₃) (hPd : (a₁ :: a₂ :: a₃ :: l).getLast ⋯ = d) (hPc : List.IsChain (fun (x1 x2 : V) => x1 ≠ x2) (a₁ :: a₂ :: a₃ :: l)) (c₁1 : ¬simpleEdges.Adj a₁ a₂) (c₁2 : simpleEdges.Adj a₂ a₃) :
theorem two_implies_three {V : Type u_1} [MetricSpace V] [Finite V] [Nontrivial V] (h : ∃ (x : V) (y : V) (z : V), IsSimpleTriangle x y z) :