Affine independence
This file defines affinely independent families of points.
Main definitions
affine_independent
defines affinely independent families of points as those where no nontrivial weighted subtraction is 0. This is proved equivalent to two other formulations: linear independence of the results of subtracting a base point in the family from the other points in the family, or any equal affine combinations having the same weights. A bundled typesimplex
is provided for finite affinely independent families of points, with an abbreviationtriangle
for the case of three points.
References
- https://en.wikipedia.org/wiki/Affine_space
An indexed family is said to be affinely independent if no nontrivial weighted subtractions (where the sum of weights is 0) are 0.
Equations
- affine_independent k p = ∀ (s : finset ι) (w : ι → k), s.sum (λ (i : ι), w i) = 0 → ⇑(s.weighted_vsub p) w = 0 → ∀ (i : ι), i ∈ s → w i = 0
A family with at most one point is affinely independent.
A family is affinely independent if and only if the differences from a base point in that family are linearly independent.
A set is affinely independent if and only if the differences from a base point in that set are linearly independent.
A set of nonzero vectors is linearly independent if and only if,
given a point p₁
, the vectors added to p₁
and p₁
itself are
affinely independent.
A family is affinely independent if and only if any affine
combinations (with sum of weights 1) that evaluate to the same point
have equal set.indicator
.
An affinely independent family is injective, if the underlying ring is nontrivial.
If a family is affinely independent, so is any subfamily given by composition of an embedding into index type with the original family.
If a family is affinely independent, so is any subfamily indexed by a subtype of the index type.
If an indexed family of points is affinely independent, so is the corresponding set of points.
If a family is affinely independent, and the spans of points indexed by two subsets of the index type have a point in common, those subsets of the index type have an element in common, if the underlying ring is nontrivial.
If a family is affinely independent, the spans of points indexed by disjoint subsets of the index type are disjoint, if the underlying ring is nontrivial.
If a family is affinely independent, a point in the family is in the span of some of the points given by a subset of the index type if and only if that point's index is in the subset, if the underlying ring is nontrivial.
If a family is affinely independent, a point in the family is not in the affine span of the other points, if the underlying ring is nontrivial.
An affinely independent set of points can be extended to such a set that spans the whole space.
- points : fin (n + 1) → P
- independent : affine_independent k c.points
A simplex k P n
is a collection of n + 1
affinely
independent points.
A triangle k P
is a collection of three affinely independent points.
Construct a 0-simplex from a point.
Equations
- affine.simplex.mk_of_point k p = {points := λ (_x : fin (0 + 1)), p, independent := _}
The point in a simplex constructed with mk_of_point
.
Equations
Equations
- _ = _
Two simplices are equal if they have the same points.
Two simplices are equal if and only if they have the same points.
A face of a simplex is a simplex with the given subset of points.
Equations
- s.face h = {points := s.points ∘ fs.mono_of_fin h, independent := _}
The points of a face of a simplex are given by mono_of_fin
.
A single-point face equals the 0-simplex constructed with
mk_of_point
.