Theorem: sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
File: Mathlib/Analysis/Convex/Between.lean

tactic: have h₁₃ : i₁ ≠ i₃ := by
  rintro rfl
  simp at h₂
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: have h₂₃ : i₂ ≠ i₃ := by
  rintro rfl
  simp at h₁
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by
  clear h₁ h₂ h₁' h₂'
  intro i
  fin_cases i <;> fin_cases i₁ <;> fin_cases i₂ <;> fin_cases i₃ <;> simp at h₁₂ h₁₃ h₂₃ ⊢
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: have hu : (Finset.univ : Finset (Fin 3)) = {i₁, i₂, i₃} := by
  clear h₁ h₂ h₁' h₂'
  fin_cases i₁ <;> fin_cases i₂ <;> fin_cases i₃ <;> simp at h₁₂ h₁₃ h₂₃ ⊢
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: have hp : p ∈ affineSpan R (Set.range t.points) := by
  have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) := by
    refine' affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) _
    have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by
      refine' affineSpan_mono R _
      simp [Set.insert_subset]
    rw [AffineSubspace.le_def'] at hle
    exact hle _ h₁.wbtw.mem_affineSpan
  rw [AffineSubspace.le_def'] at hle
  exact hle _ h₁'
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: have h₁i := h₁.mem_image_Ioo
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hp : p ∈ affineSpan R (Set.range t.points)
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: have h₂i := h₂.mem_image_Ioo
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hp : p ∈ affineSpan R (Set.range t.points)
h₁i : p₁ ∈ ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) '' Set.Ioo 0 1
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: rw [Set.mem_image] at h₁i h₂i
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hp : p ∈ affineSpan R (Set.range t.points)
h₁i : p₁ ∈ ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) '' Set.Ioo 0 1
h₂i : p₂ ∈ ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) '' Set.Ioo 0 1
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: rcases h₁i with ⟨r₁, ⟨hr₁0, hr₁1⟩, rfl⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hp : p ∈ affineSpan R (Set.range t.points)
h₁i : ∃ x, x ∈ Set.Ioo 0 1 ∧ ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) x = p₁
h₂i : ∃ x, x ∈ Set.Ioo 0 1 ∧ ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) x = p₂
⊢ Sbtw R (Affine.Simplex.points t i₁) p p₁

tactic: rcases h₂i with ⟨r₂, ⟨hr₂0, hr₂1⟩, rfl⟩
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₂ p : P
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hp : p ∈ affineSpan R (Set.range t.points)
h₂i : ∃ x, x ∈ Set.Ioo 0 1 ∧ ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) x = p₂
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
h₁' :
  p ∈ affineSpan R {Affine.Simplex.points t i₁, ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁}
⊢ Sbtw R (Affine.Simplex.points t i₁) p (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)

tactic: rcases eq_affineCombination_of_mem_affineSpan_of_fintype hp with ⟨w, hw, rfl⟩
state_before: case intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p : P
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hp : p ∈ affineSpan R (Set.range t.points)
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
h₁' :
  p ∈ affineSpan R {Affine.Simplex.points t i₁, ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁}
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
h₂' :
  p ∈ affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
⊢ Sbtw R (Affine.Simplex.points t i₁) p (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)

tactic: have h₁s :=
  sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.Independent hw (Finset.mem_univ _)
    (Finset.mem_univ _) (Finset.mem_univ _) h₁₂ h₁₃ h₂₃ hr₁0 hr₁1 h₁'
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₁, ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
⊢ Sbtw R (Affine.Simplex.points t i₁) (↑(Finset.affineCombination R Finset.univ t.points) w)
    (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)

tactic: have h₂s :=
  sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.Independent hw (Finset.mem_univ _)
    (Finset.mem_univ _) (Finset.mem_univ _) h₁₂.symm h₂₃ h₁₃ hr₂0 hr₂1 h₂'
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₁, ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
⊢ Sbtw R (Affine.Simplex.points t i₁) (↑(Finset.affineCombination R Finset.univ t.points) w)
    (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)

tactic: dsimp only at h₁s h₂s
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₁, ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
⊢ Sbtw R (Affine.Simplex.points t i₁) (↑(Finset.affineCombination R Finset.univ t.points) w)
    (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)

tactic: rw [← Finset.univ.affineCombination_affineCombinationSingleWeights R t.points
    (Finset.mem_univ i₁),
  ← Finset.univ.affineCombination_affineCombinationLineMapWeights t.points (Finset.mem_univ _)
    (Finset.mem_univ _)] at h₁'⊢
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₁, ↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
⊢ Sbtw R (Affine.Simplex.points t i₁) (↑(Finset.affineCombination R Finset.univ t.points) w)
    (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)

tactic: refine'
  Sbtw.affineCombination_of_mem_affineSpan_pair t.Independent hw
    (Finset.univ.sum_affineCombinationSingleWeights R (Finset.mem_univ _))
    (Finset.univ.sum_affineCombinationLineMapWeights (Finset.mem_univ _) (Finset.mem_univ _) _)
    h₁' (Finset.mem_univ i₁) _
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
⊢ Sbtw R (↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁))
    (↑(Finset.affineCombination R Finset.univ t.points) w)
    (↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁))

tactic: rw [Finset.affineCombinationSingleWeights_apply_self,
  Finset.affineCombinationLineMapWeights_apply_of_ne h₁₂ h₁₃, sbtw_one_zero_iff]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
⊢ Sbtw R (Finset.affineCombinationSingleWeights R i₁ i₁) (w i₁) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁ i₁)

tactic: have hss : SignType.sign (∑ i, w i) = 1 := by simp [hw]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
⊢ w i₁ ∈ Set.Ioo 0 1

tactic: have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (∑ i : Fin (2 + 1), w i) = 1
⊢ w i₁ ∈ Set.Ioo 0 1

tactic: rw [hs'] at hss
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (∑ i : Fin (2 + 1), w i) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
⊢ w i₁ ∈ Set.Ioo 0 1

tactic: simp_rw [hss, sign_eq_one_iff] at hs
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
⊢ w i₁ ∈ Set.Ioo 0 1

tactic: refine' ⟨hs i₁, _⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
⊢ w i₁ ∈ Set.Ioo 0 1

tactic: rw [hu] at hw
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
⊢ w i₁ < 1

tactic: rw [Finset.sum_insert, Finset.sum_insert, Finset.sum_singleton] at hw
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i in {i₁, i₂, i₃}, w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
⊢ w i₁ < 1

tactic: rintro rfl
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
⊢ i₁ ≠ i₃

tactic: simp at h₂
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₁)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₁)
⊢ False

tactic: rintro rfl
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
⊢ i₂ ≠ i₃

tactic: simp at h₁
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₂)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₂)
h₁₃ : i₁ ≠ i₂
⊢ False

tactic: clear h₁ h₂ h₁' h₂'
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
⊢ ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃

tactic: intro i
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
⊢ ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃

tactic: fin_cases i <;> fin_cases i₁ <;> fin_cases i₂ <;> fin_cases i₃ <;> simp at h₁₂ h₁₃ h₂₃ ⊢
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
i : Fin 3
⊢ i = i₁ ∨ i = i₂ ∨ i = i₃

tactic: clear h₁ h₂ h₁' h₂'
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
⊢ Finset.univ = {i₁, i₂, i₃}

tactic: fin_cases i₁ <;> fin_cases i₂ <;> fin_cases i₃ <;> simp at h₁₂ h₁₃ h₂₃ ⊢
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
⊢ Finset.univ = {i₁, i₂, i₃}

tactic: have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) := by
  refine' affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) _
  have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by
    refine' affineSpan_mono R _
    simp [Set.insert_subset]
  rw [AffineSubspace.le_def'] at hle
  exact hle _ h₁.wbtw.mem_affineSpan
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
⊢ p ∈ affineSpan R (Set.range t.points)

tactic: rw [AffineSubspace.le_def'] at hle
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hle : affineSpan R {Affine.Simplex.points t i₁, p₁} ≤ affineSpan R (Set.range t.points)
⊢ p ∈ affineSpan R (Set.range t.points)

tactic: exact hle _ h₁'
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hle : ∀ (p : P), p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁} → p ∈ affineSpan R (Set.range t.points)
⊢ p ∈ affineSpan R (Set.range t.points)

tactic: refine' affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) _
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
⊢ affineSpan R {Affine.Simplex.points t i₁, p₁} ≤ affineSpan R (Set.range t.points)

tactic: have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by
  refine' affineSpan_mono R _
  simp [Set.insert_subset]
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
⊢ p₁ ∈ affineSpan R (Set.range t.points)

tactic: rw [AffineSubspace.le_def'] at hle
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hle : affineSpan R {Affine.Simplex.points t i₂, Affine.Simplex.points t i₃} ≤ affineSpan R (Set.range t.points)
⊢ p₁ ∈ affineSpan R (Set.range t.points)

tactic: exact hle _ h₁.wbtw.mem_affineSpan
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
hle :
  ∀ (p : P),
    p ∈ affineSpan R {Affine.Simplex.points t i₂, Affine.Simplex.points t i₃} → p ∈ affineSpan R (Set.range t.points)
⊢ p₁ ∈ affineSpan R (Set.range t.points)

tactic: refine' affineSpan_mono R _
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
⊢ affineSpan R {Affine.Simplex.points t i₂, Affine.Simplex.points t i₃} ≤ affineSpan R (Set.range t.points)

tactic: simp [Set.insert_subset]
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
p₁ p₂ p : P
h₁ : Sbtw R (Affine.Simplex.points t i₂) p₁ (Affine.Simplex.points t i₃)
h₂ : Sbtw R (Affine.Simplex.points t i₁) p₂ (Affine.Simplex.points t i₃)
h₁' : p ∈ affineSpan R {Affine.Simplex.points t i₁, p₁}
h₂' : p ∈ affineSpan R {Affine.Simplex.points t i₂, p₂}
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
⊢ {Affine.Simplex.points t i₂, Affine.Simplex.points t i₃} ⊆ Set.range t.points

tactic: intro i
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
⊢ ∀ (i : Fin 3), ↑SignType.sign (w i) = ↑SignType.sign (w i₃)

tactic: rcases h3 i with (rfl | rfl | rfl)
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
i : Fin 3
⊢ ↑SignType.sign (w i) = ↑SignType.sign (w i₃)

tactic: exact h₂s
state_before: case inl
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₂ i₃ : Fin 3
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₂₃ : i₂ ≠ i₃
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
i : Fin 3
h₁₂ : i ≠ i₂
h₁₃ : i ≠ i₃
h3 : ∀ (i_1 : Fin 3), i_1 = i ∨ i_1 = i₂ ∨ i_1 = i₃
hu : Finset.univ = {i, i₂, i₃}
h₂ :
  Sbtw R (Affine.Simplex.points t i) (↑(lineMap (Affine.Simplex.points t i) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i) (Affine.Simplex.points t i₃)) r₂}
h₂s : ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
⊢ ↑SignType.sign (w i) = ↑SignType.sign (w i₃)

tactic: exact h₁s
state_before: case inr.inl
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₃ : Fin 3
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
i : Fin 3
h₁₂ : i₁ ≠ i
h₂₃ : i ≠ i₃
h3 : ∀ (i_1 : Fin 3), i_1 = i₁ ∨ i_1 = i ∨ i_1 = i₃
hu : Finset.univ = {i₁, i, i₃}
h₁ :
  Sbtw R (Affine.Simplex.points t i) (↑(lineMap (Affine.Simplex.points t i) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
⊢ ↑SignType.sign (w i) = ↑SignType.sign (w i₃)

tactic: rfl
state_before: case inr.inr
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
i : Fin 3
h₁₃ : i₁ ≠ i
h₂₃ : i₂ ≠ i
h3 : ∀ (i_1 : Fin 3), i_1 = i₁ ∨ i_1 = i₂ ∨ i_1 = i
hu : Finset.univ = {i₁, i₂, i}
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i)) r₁)
    (Affine.Simplex.points t i)
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i)) r₂)
    (Affine.Simplex.points t i)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i)
⊢ ↑SignType.sign (w i) = ↑SignType.sign (w i)

tactic: simp [hw]
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i : Fin (2 + 1), w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), ↑SignType.sign (w i) = ↑SignType.sign (w i₃)
⊢ ↑SignType.sign (∑ i : Fin (2 + 1), w i) = 1

tactic: by_contra hle
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : w i₁ + (w i₂ + w i₃) = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
⊢ w i₁ < 1

tactic: rw [not_lt] at hle
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : w i₁ + (w i₂ + w i₃) = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
hle : ¬w i₁ < 1
⊢ False

tactic: exact (hle.trans_lt (lt_add_of_pos_right _ (Left.add_pos (hs i₂) (hs i₃)))).ne' hw
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : w i₁ + (w i₂ + w i₃) = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
hle : 1 ≤ w i₁
⊢ False

tactic: simpa using h₂₃
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : w i₁ + ∑ x in {i₂, i₃}, w x = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
⊢ ¬i₂ ∈ {i₃}

tactic: simpa [not_or] using ⟨h₁₂, h₁₃⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.373168
P : Type u_3
P' : Type ?u.373174
inst✝⁴ : LinearOrderedRing R
inst✝³ : AddCommGroup V
inst✝² : Module R V
inst✝¹ : AddTorsor V P
inst✝ : NoZeroSMulDivisors R V
t : Affine.Triangle R P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
this : DecidableRel fun x x_1 => x < x_1 := LinearOrderedRing.decidableLT
h₁₃ : i₁ ≠ i₃
h₂₃ : i₂ ≠ i₃
h3 : ∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃
hu : Finset.univ = {i₁, i₂, i₃}
r₁ : R
hr₁0 : 0 < r₁
hr₁1 : r₁ < 1
h₁ :
  Sbtw R (Affine.Simplex.points t i₂) (↑(lineMap (Affine.Simplex.points t i₂) (Affine.Simplex.points t i₃)) r₁)
    (Affine.Simplex.points t i₃)
r₂ : R
hr₂0 : 0 < r₂
hr₂1 : r₂ < 1
h₂ :
  Sbtw R (Affine.Simplex.points t i₁) (↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂)
    (Affine.Simplex.points t i₃)
w : Fin (2 + 1) → R
hw : ∑ i in {i₁, i₂, i₃}, w i = 1
hp : ↑(Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (Set.range t.points)
h₁' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R
      {↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁),
        ↑(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationLineMapWeights i₂ i₃ r₁)}
h₂' :
  ↑(Finset.affineCombination R Finset.univ t.points) w ∈
    affineSpan R {Affine.Simplex.points t i₂, ↑(lineMap (Affine.Simplex.points t i₁) (Affine.Simplex.points t i₃)) r₂}
h₁s : ↑SignType.sign (w i₂) = ↑SignType.sign (w i₃)
h₂s : ↑SignType.sign (w i₁) = ↑SignType.sign (w i₃)
hss : ↑SignType.sign (w i₃) = 1
hs' : ↑SignType.sign (∑ i : Fin 3, w i) = ↑SignType.sign (w i₃)
hs : ∀ (i : Fin 3), 0 < w i
⊢ ¬i₁ ∈ {i₂, i₃}