mathlib documentation

linear_algebra.affine_space.finite_dimensional

Finite-dimensional subspaces of affine spaces. #

This file provides a few results relating to finite-dimensional subspaces of affine spaces.

Main definitions #

theorem finite_dimensional_vector_span_of_finite (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] {s : set P} (h : s.finite) :

The vector_span of a finite set is finite-dimensional.

@[protected, instance]
def finite_dimensional_vector_span_of_fintype (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) :

The vector_span of a family indexed by a fintype is finite-dimensional.

@[protected, instance]
def finite_dimensional_vector_span_image_of_fintype (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) (s : set ι) :

The vector_span of a subset of a family indexed by a fintype is finite-dimensional.

theorem finite_dimensional_direction_affine_span_of_finite (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] {s : set P} (h : s.finite) :

The direction of the affine span of a finite set is finite-dimensional.

@[protected, instance]
def finite_dimensional_direction_affine_span_of_fintype (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) :

The direction of the affine span of a family indexed by a fintype is finite-dimensional.

@[protected, instance]
def finite_dimensional_direction_affine_span_image_of_fintype (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) (s : set ι) :

The direction of the affine span of a subset of a family indexed by a fintype is finite-dimensional.

noncomputable def fintype_of_fin_dim_affine_independent (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [finite_dimensional k V] {p : ι → P} (hi : affine_independent k p) :

An affine-independent family of points in a finite-dimensional affine space is finite.

Equations
theorem finite_of_fin_dim_affine_independent (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [finite_dimensional k V] {s : set P} (hi : affine_independent k coe) :

An affine-independent subset of a finite-dimensional affine space is finite.

theorem affine_independent.finrank_vector_span_image_finset {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] {p : ι → P} (hi : affine_independent k p) {s : finset ι} {n : } (hc : s.card = n + 1) :

The vector_span of a finite subset of an affinely independent family has dimension one less than its cardinality.

theorem affine_independent.finrank_vector_span {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] {p : ι → P} (hi : affine_independent k p) {n : } (hc : fintype.card ι = n + 1) :

The vector_span of a finite affinely independent family has dimension one less than its cardinality.

theorem affine_independent.vector_span_eq_top_of_card_eq_finrank_add_one {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [finite_dimensional k V] [fintype ι] {p : ι → P} (hi : affine_independent k p) (hc : fintype.card ι = finite_dimensional.finrank k V + 1) :

The vector_span of a finite affinely independent family whose cardinality is one more than that of the finite-dimensional space is .

theorem finrank_vector_span_image_finset_le (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (p : ι → P) (s : finset ι) {n : } (hc : s.card = n + 1) :

The vector_span of n + 1 points in an indexed family has dimension at most n.

theorem finrank_vector_span_range_le (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) {n : } (hc : fintype.card ι = n + 1) :

The vector_span of an indexed family of n + 1 points has dimension at most n.

theorem affine_independent_iff_finrank_vector_span_eq (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) {n : } (hc : fintype.card ι = n + 1) :

n + 1 points are affinely independent if and only if their vector_span has dimension n.

theorem affine_independent_iff_le_finrank_vector_span (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) {n : } (hc : fintype.card ι = n + 1) :

n + 1 points are affinely independent if and only if their vector_span has dimension at least n.

theorem affine_independent_iff_not_finrank_vector_span_le (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) {n : } (hc : fintype.card ι = n + 2) :

n + 2 points are affinely independent if and only if their vector_span does not have dimension at most n.

theorem finrank_vector_span_le_iff_not_affine_independent (k : Type u_1) {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] (p : ι → P) {n : } (hc : fintype.card ι = n + 2) :

n + 2 points have a vector_span with dimension at most n if and only if they are not affinely independent.

theorem affine_independent.vector_span_image_finset_eq_of_le_of_card_eq_finrank_add_one {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] {p : ι → P} (hi : affine_independent k p) {s : finset ι} {sm : submodule k V} [finite_dimensional k sm] (hle : vector_span k (finset.image p s) sm) (hc : s.card = finite_dimensional.finrank k sm + 1) :

If the vector_span of a finite subset of an affinely independent family lies in a submodule with dimension one less than its cardinality, it equals that submodule.

theorem affine_independent.vector_span_eq_of_le_of_card_eq_finrank_add_one {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] {p : ι → P} (hi : affine_independent k p) {sm : submodule k V} [finite_dimensional k sm] (hle : vector_span k (set.range p) sm) (hc : fintype.card ι = finite_dimensional.finrank k sm + 1) :

If the vector_span of a finite affinely independent family lies in a submodule with dimension one less than its cardinality, it equals that submodule.

theorem affine_independent.affine_span_image_finset_eq_of_le_of_card_eq_finrank_add_one {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] {p : ι → P} (hi : affine_independent k p) {s : finset ι} {sp : affine_subspace k P} [finite_dimensional k (sp.direction)] (hle : affine_span k (finset.image p s) sp) (hc : s.card = finite_dimensional.finrank k (sp.direction) + 1) :

If the affine_span of a finite subset of an affinely independent family lies in an affine subspace whose direction has dimension one less than its cardinality, it equals that subspace.

theorem affine_independent.affine_span_eq_of_le_of_card_eq_finrank_add_one {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [fintype ι] {p : ι → P} (hi : affine_independent k p) {sp : affine_subspace k P} [finite_dimensional k (sp.direction)] (hle : affine_span k (set.range p) sp) (hc : fintype.card ι = finite_dimensional.finrank k (sp.direction) + 1) :

If the affine_span of a finite affinely independent family lies in an affine subspace whose direction has dimension one less than its cardinality, it equals that subspace.

theorem affine_independent.affine_span_eq_top_iff_card_eq_finrank_add_one {k : Type u_1} {V : Type u_2} {P : Type u_3} {ι : Type u_4} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] [finite_dimensional k V] [fintype ι] {p : ι → P} (hi : affine_independent k p) :

The affine_span of a finite affinely independent family is iff the family's cardinality is one more than that of the finite-dimensional space.

theorem finite_dimensional_vector_span_insert {k : Type u_1} {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (s : affine_subspace k P) [finite_dimensional k (s.direction)] (p : P) :

The vector_span of adding a point to a finite-dimensional subspace is finite-dimensional.

The direction of the affine span of adding a point to a finite-dimensional subspace is finite-dimensional.

theorem finite_dimensional_vector_span_insert_set (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (s : set P) [finite_dimensional k (vector_span k s)] (p : P) :

The vector_span of adding a point to a set with a finite-dimensional vector_span is finite-dimensional.

def collinear (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (s : set P) :
Prop

A set of points is collinear if their vector_span has dimension at most 1.

Equations
theorem collinear_iff_dim_le_one (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (s : set P) :

The definition of collinear.

theorem collinear_iff_finrank_le_one (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (s : set P) [finite_dimensional k (vector_span k s)] :

A set of points, whose vector_span is finite-dimensional, is collinear if and only if their vector_span has dimension at most 1.

theorem collinear_empty (k : Type u_1) {V : Type u_2} (P : Type u_3) [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] :

The empty set is collinear.

theorem collinear_singleton (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (p : P) :
collinear k {p}

A single point is collinear.

theorem collinear_iff_of_mem (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] {s : set P} {p₀ : P} (h : p₀ s) :
collinear k s ∃ (v : V), ∀ (p : P), p s(∃ (r : k), p = r v +ᵥ p₀)

Given a point p₀ in a set of points, that set is collinear if and only if the points can all be expressed as multiples of the same vector, added to p₀.

theorem collinear_iff_exists_forall_eq_smul_vadd (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (s : set P) :
collinear k s ∃ (p₀ : P) (v : V), ∀ (p : P), p s(∃ (r : k), p = r v +ᵥ p₀)

A set of points is collinear if and only if they can all be expressed as multiples of the same vector, added to the same base point.

theorem collinear_pair (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (p₁ p₂ : P) :
collinear k {p₁, p₂}

Two points are collinear.

theorem affine_independent_iff_not_collinear (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (p : fin 3 → P) :

Three points are affinely independent if and only if they are not collinear.

theorem collinear_iff_not_affine_independent (k : Type u_1) {V : Type u_2} {P : Type u_3} [division_ring k] [add_comm_group V] [module k V] [add_torsor V P] (p : fin 3 → P) :

Three points are collinear if and only if they are not affinely independent.

theorem finrank_vector_span_insert_le {k : Type u_1} {V : Type u_2} {P : Type u_3} [field k] [add_comm_group V] [module k V] [add_torsor V P] (s : affine_subspace k P) (p : P) :

Adding a point to a finite-dimensional subspace increases the dimension by at most one.

theorem finrank_vector_span_insert_le_set (k : Type u_1) {V : Type u_2} {P : Type u_3} [field k] [add_comm_group V] [module k V] [add_torsor V P] (s : set P) (p : P) :

Adding a point to a set with a finite-dimensional span increases the dimension by at most one.