Documentation

Mathlib.LinearAlgebra.AffineSpace.Ceva

Ceva's theorem. #

This file proves various versions of Ceva's theorem.

References #

theorem AffineIndependent.exists_affineCombination_eq_smul_eq {k : Type u_1} {V : Type u_2} {P : Type u_3} {ฮน : Type u_4} [Ring k] [AddCommGroup V] [Module k V] [AddTorsor V P] {p : ฮน โ†’ P} (hp : AffineIndependent k p) {s : Set ฮน} (hs : s.Nonempty) {fs : โ†‘s โ†’ Finset ฮน} {w : โ†‘s โ†’ ฮน โ†’ k} (hw : โˆ€ (i : โ†‘s), โˆ‘ j โˆˆ fs i, w i j = 1) {p' : P} (hp' : โˆ€ (i : โ†‘s), p' โˆˆ affineSpan k {p โ†‘i, (Finset.affineCombination k (fs i) p) (w i)}) :
โˆƒ (w' : ฮน โ†’ k) (fs' : Finset ฮน), โˆ‘ j โˆˆ fs', w' j = 1 โˆง (Finset.affineCombination k fs' p) w' = p' โˆง โˆ€ (i : โ†‘s), โˆƒ (r : k), โˆ€ (j : ฮน), r * (โ†‘(fs i) \ {โ†‘i}).indicator (w i) j = (โ†‘fs' \ {โ†‘i}).indicator w' j

A version of Ceva's theorem for an arbitrary indexed affinely independent family of points: consider some lines, each through one of the points and an affine combination of the points, and suppose they concur at p'; then p' is an affine combination of the points with weights proportional to those in the respective affine combinations.

theorem AffineIndependent.exists_affineCombination_eq_smul_eq_of_fintype {k : Type u_1} {V : Type u_2} {P : Type u_3} {ฮน : Type u_4} [Ring k] [AddCommGroup V] [Module k V] [AddTorsor V P] [Fintype ฮน] {p : ฮน โ†’ P} (hp : AffineIndependent k p) {s : Set ฮน} (hs : s.Nonempty) {w : โ†‘s โ†’ ฮน โ†’ k} (hw : โˆ€ (i : โ†‘s), โˆ‘ j : ฮน, w i j = 1) {p' : P} (hp' : โˆ€ (i : โ†‘s), p' โˆˆ affineSpan k {p โ†‘i, (Finset.affineCombination k Finset.univ p) (w i)}) :
โˆƒ (w' : ฮน โ†’ k), โˆ‘ j : ฮน, w' j = 1 โˆง (Finset.affineCombination k Finset.univ p) w' = p' โˆง โˆ€ (i : โ†‘s), โˆƒ (r : k), โˆ€ (j : ฮน), r * {โ†‘i}แถœ.indicator (w i) j = {โ†‘i}แถœ.indicator w' j

A version of Ceva's theorem for a finite indexed affinely independent family of points: consider some lines, each through one of the points and an affine combination of the points, and suppose they concur at p'; then p' is an affine combination of the points with weights proportional to those in the respective affine combinations.

theorem Affine.Triangle.prod_eq_prod_one_sub_of_mem_line_point_lineMap {k : Type u_1} {V : Type u_2} {P : Type u_3} [CommRing k] [NoZeroDivisors k] [AddCommGroup V] [Module k V] [AddTorsor V P] {t : Triangle k P} {r : Fin 3 โ†’ k} {p' : P} (hp' : โˆ€ (i : Fin 3), p' โˆˆ affineSpan k {t.points i, (AffineMap.lineMap (t.points (i + 1)) (t.points (i + 2))) (r i)}) :
โˆ i : Fin 3, r i = โˆ i : Fin 3, (1 - r i)

Ceva's theorem for a triangle, expressed in terms of multiplying weights.

theorem Affine.Triangle.prod_div_one_sub_eq_one_of_mem_line_point_lineMap {k : Type u_1} {V : Type u_2} {P : Type u_3} [Field k] [AddCommGroup V] [Module k V] [AddTorsor V P] {t : Triangle k P} {r : Fin 3 โ†’ k} (hr0 : โˆ€ (i : Fin 3), r i โ‰  0) {p' : P} (hp' : โˆ€ (i : Fin 3), p' โˆˆ affineSpan k {t.points i, (AffineMap.lineMap (t.points (i + 1)) (t.points (i + 2))) (r i)}) :
โˆ i : Fin 3, r i / (1 - r i) = 1

Ceva's theorem for a triangle, expressed using division.