Linear independence #
This file defines linear independence in a module or vector space.
It is inspired by Isabelle/HOL's linear algebra, and hence indirectly by HOL Light.
We define LinearIndependent R v
as Function.Injective (Finsupp.linearCombination R v)
. Here
Finsupp.linearCombination
is the linear map sending a function f : ι →₀ R
with finite support to
the linear combination of vectors from v
with these coefficients.
The goal of this file is to define linear independence and to prove that several other
statements are equivalent to this one, including ker (Finsupp.linearCombination R v) = ⊥
and
some versions with explicitly written linear combinations.
Main definitions #
All definitions are given for families of vectors, i.e. v : ι → M
where M
is the module or
vector space and ι : Type*
is an arbitrary indexing type.
LinearIndependent R v
states that the elements of the familyv
are linearly independent.LinearIndepOn R v s
states that the elements of the familyv
indexed by the members of the sets : Set ι
are linearly independent.LinearIndependent.repr hv x
returns the linear combination representingx : span R (range v)
on the linearly independent vectorsv
, givenhv : LinearIndependent R v
(using classical choice).LinearIndependent.repr hv
is provided as a linear map.LinearIndependent.Maximal
states that there exists no linear independent family that strictly includes the given one.
Main results #
Fintype.linearIndependent_iff
: ifι
is a finite type, then any functionf : ι → R
has finite support, so we can reformulate the statement using∑ i : ι, f i • v i
instead of a sum over an auxiliarys : Finset ι
;
Implementation notes #
We use families instead of sets because it allows us to say that two identical vectors are linearly dependent.
If you want to use sets, use the family (fun x ↦ x : s → M)
given a set s : Set M
. The lemmas
LinearIndependent.to_subtype_range
and LinearIndependent.of_subtype_range
connect those two
worlds.
TODO #
Rework proofs to hold in semirings, by avoiding the path through
ker (Finsupp.linearCombination R v) = ⊥
.
Tags #
linearly dependent, linear dependence, linearly independent, linear independence
LinearIndependent R v
states the family of vectors v
is linearly independent over R
.
Equations
Instances For
Delaborator for LinearIndependent
that suggests pretty printing with type hints
in case the family of vectors is over a Set
.
Type hints look like LinearIndependent fun (v : ↑s) => ↑v
or LinearIndependent (ι := ↑s) f
,
depending on whether the family is a lambda expression or not.
Equations
- One or more equations did not get rendered due to their size.
Instances For
LinearIndepOn R v s
states that the vectors in the family v
that are indexed
by the elements of s
are linearly independent over R
.
Equations
- LinearIndepOn R v s = LinearIndependent R fun (x : ↑s) => v ↑x
Instances For
Alias of the forward direction of linearIndependent_iff_injective_linearCombination
.
Alias of linearIndependent_set_coe_iff
.
A subfamily of a linearly independent family (i.e., a composition with an injective map) is a linearly independent family.
A family is linearly independent if and only if all of its finite subfamily is linearly independent.
If the image of a family of vectors under a linear map is linearly independent, then so is the original family.
If f
is a linear map injective on the span of the range of v
, then the family f ∘ v
is linearly independent if and only if the family v
is linearly independent.
See LinearMap.linearIndependent_iff_of_disjoint
for the version with Set.InjOn
replaced
by Disjoint
when working over a ring.
Alias of the reverse direction of linearIndepOn_univ
.
Alias of linearIndepOn_iff_image
.
Alias of the forward direction of linearIndepOn_range_iff
.
Alias of the forward direction of linearIndepOn_id_range_iff
.
Alias of linearIndepOn_id_range_iff
.
Alias of the forward direction of linearIndepOn_id_range_iff
.
Alias of the forward direction of linearIndepOn_id_range_iff
.
Alias of LinearIndependent.linearIndepOn_id
.
Alias of LinearIndependent.linearIndepOn_id
.
A version of LinearIndependent.linearIndepOn_id
with the set range equality as a hypothesis.
Alias of LinearIndependent.linearIndepOn_id'
.
A version of LinearIndependent.linearIndepOn_id
with the set range equality as a hypothesis.
Alias of linearIndepOn_iffₛ
.
An indexed set of vectors is linearly dependent iff there are two distinct
Finsupp.LinearCombination
s of the vectors with the same value.
Alias of linearDepOn_iff'ₛ
.
An indexed set of vectors is linearly dependent iff there are two distinct
Finsupp.LinearCombination
s of the vectors with the same value.
A version of linearDepOn_iff'ₛ
with Finsupp.linearCombination
unfolded.
Alias of linearDepOn_iffₛ
.
A version of linearDepOn_iff'ₛ
with Finsupp.linearCombination
unfolded.
Alias of linearIndepOn_iffₛ
.
Alias of LinearIndepOn.linearIndependent_restrict
.
Alias of linearIndepOn_iff_linearCombinationOnₛ
.
Canonical isomorphism between linear combinations and the span of linearly independent vectors.
Equations
- hv.linearCombinationEquiv = LinearEquiv.ofBijective (LinearMap.codRestrict (Submodule.span R (Set.range v)) (Finsupp.linearCombination R v) ⋯) ⋯
Instances For
Linear combination representing a vector in the span of linearly independent vectors.
Given a family of linearly independent vectors, we can represent any vector in their span as
a linear combination of these vectors. These are provided by this linear map.
It is simply one direction of LinearIndependent.linearCombinationEquiv
.
Equations
- hv.repr = ↑hv.linearCombinationEquiv.symm
Instances For
A linearly independent family is maximal if there is no strictly larger linearly independent family.
Equations
- _i.Maximal = ∀ (s : Set M), LinearIndependent R Subtype.val → Set.range v ≤ s → Set.range v = s
Instances For
An alternative characterization of a maximal linearly independent family,
quantifying over types (in the same universe as M
) into which the indexing family injects.
If the kernel of a linear map is disjoint from the span of a family of vectors, then the family is linearly independent iff it is linearly independent after composing with the linear map.
The following give equivalent versions of LinearIndepOn
and its negation.
Alias of linearIndepOn_iff
.
Alias of linearIndepOn_iff
.
An indexed set of vectors is linearly dependent iff there is a nontrivial
Finsupp.linearCombination
of the vectors that is zero.
Alias of linearDepOn_iff'
.
An indexed set of vectors is linearly dependent iff there is a nontrivial
Finsupp.linearCombination
of the vectors that is zero.
A version of linearDepOn_iff'
with Finsupp.linearCombination
unfolded.
Alias of linearDepOn_iff
.
A version of linearDepOn_iff'
with Finsupp.linearCombination
unfolded.
Alias of linearIndepOn_iff_disjoint
.
Alias of linearIndepOn_iff_disjoint
.
Alias of linearIndepOn_iff_linearCombinationOn
.
Properties which require DivisionRing K
#
These can be considered generalizations of properties of linear independence in vector spaces.