Linear algebra

This file defines the basics of linear algebra. It sets up the "categorical/lattice structure" of modules over a ring, submodules, and linear maps. If p and q are submodules of a module, p q means that p ⊆ q.

Many of the relevant definitions, including module, submodule, and linear_map, are found in src/algebra/module.lean.

Main definitions

Main statements

Notations

Implementation notes

We note that, when constructing linear maps, it is convenient to use operations defined on bundled maps (pair, copair, arithmetic operations like +) instead of defining a function and proving it is linear.

Tags

linear algebra, vector space, module


linear_map.cod_restrict

A linear map f : M₂ M whose values lie in a submodule p ⊆ M can be restricted to a linear map M₂ → p.

linear_map.inverse

If a function g is a left and right inverse of a linear map f, then g is linear itself.

linear_map.has_zero

The constant 0 map is linear.

linear_map.has_neg

The negation of a linear map is linear.

linear_map.has_add

The sum of two linear maps is linear.

linear_map.add_comm_group

The type of linear maps is an additive group.

linear_map.smul_right

λb, f b • x is a linear map.

linear_map.fst

The first projection of a product is a linear map.

linear_map.snd

The second projection of a product is a linear map.

linear_map.pair

The pair of two linear maps is a linear map.

linear_map.inl

The left injection into a product is a linear map.

linear_map.inr

The right injection into a product is a linear map.

linear_map.copair

The copair function λ x : M × M₂, f x.1 + g x.2 is a linear map.

linear_map.congr_right

Composition by f : M₂ M₃ is a linear map from the space of linear maps M M₂ to the space of linear maps M₂ M₃.

submodule.of_le

If two submodules p and p' satisfy p ⊆ p', then of_le p p' is the linear map version of this inclusion.

submodule.lattice.has_bot

The set {0} is the bottom element of the lattice of submodules.

submodule.lattice.has_top

The universal set is the top element of the lattice of submodules.

submodule.map

The pushforward of a submodule p ⊆ M by f : M M₂

submodule.comap

The pullback of a submodule p ⊆ M₂ along f : M M₂

submodule.span

The span of a set s ⊆ M is the smallest submodule of M that contains s.

submodule.span_induction

An induction principle for span membership. If p holds for 0 and all elements of s, and is preserved under addition and scalar multiplication, then p holds for all elements of the span of s.

submodule.gi

span forms a Galois insertion with the coercion from submodule to set.

submodule.prod

The product of two submodules is a submodule.

submodule.quotient_rel

The equivalence relation associated to a submodule p, defined by x ≈ y iff y - x ∈ p.

submodule.quotient

The quotient of a module M by a submodule p ⊆ M.

submodule.quotient.mk

Map associating to an element of M the corresponding element of M/p, when p is a submodule of M.

linear_map.range

The range of a linear map f : M M₂ is a submodule of M₂.

linear_map.ker

The kernel of a linear map f : M M₂ is defined to be comap f ⊥. This is equivalent to the set of x : M such that f x = 0. The kernel is a submodule of M.

submodule.map_subtype.order_iso

If N ⊆ M then submodules of N are the same as submodules of M contained in N

submodule.map_subtype.le_order_embedding

If p ⊆ M is a submodule, the ordering of submodules of p is embedded in the ordering of submodules of M.

submodule.map_subtype.lt_order_embedding

If p ⊆ M is a submodule, the ordering of submodules of p is embedded in the ordering of submodules of M.

submodule.mkq

The map from a module M to the quotient of M by a submodule p is a linear map.

submodule.liftq

The map from the quotient of M by a submodule p to M₂ along f : M M₂ is linear.

submodule.mapq

The map from the quotient of M by submodule p to the quotient of M₂ by submodule q along f : M M₂ is linear.

submodule.comap_mkq.order_iso

The correspondence theorem for modules: there is an order isomorphism between submodules of the quotient of M by p, and submodules of M larger than p.

submodule.comap_mkq.le_order_embedding

The ordering on submodules of the quotient of M by p embeds into the ordering on submodules of M.

submodule.comap_mkq.lt_order_embedding

The ordering on submodules of the quotient of M by p embeds into the ordering on submodules of M.

linear_equiv

A linear equivalence is an invertible linear map.

linear_equiv.refl

The identity map is a linear equivalence.

linear_equiv.symm

Linear equivalences are symmetric.

linear_equiv.trans

Linear equivalences are transitive.

linear_equiv.of_bijective

A bijective linear map is a linear equivalence. Here, bijectivity is described by saying that the kernel of f is {0} and the range is the universal set.

linear_equiv.of_linear

If a linear map has an inverse, it is a linear equivalence.

linear_equiv.of_top

The top submodule of M is linearly equivalent to M.

linear_equiv.smul_of_unit

Multiplying by a unit a of the ring R is a linear equivalence.

linear_equiv.arrow_congr

A linear isomorphism between the domains and codomains of two spaces of linear maps gives a linear isomorphism between the two function spaces.

linear_equiv.congr_right

If M₂ and M₃ are linearly isomorphic then the two spaces of linear maps from M into M₂ and M into M₃ are linearly isomorphic.

linear_equiv.conj

If M and M₂ are linearly isomorphic then the two spaces of linear maps from M and M₂ to themselves are linearly isomorphic.

linear_equiv.smul_of_ne_zero

Multiplying by a nonzero element a of the field K is a linear equivalence.

equiv.to_linear_equiv

An equivalence whose underlying function is linear is a linear equivalence.

linear_map.quot_ker_equiv_range

The first isomorphism law for modules. The quotient of M by the kernel of f is linearly equivalent to the range of f.

linear_map.sup_quotient_to_quotient_inf

Canonical linear map from the quotient p/(p ∩ p') to (p+p')/p', mapping x + (p ∩ p') to x + p', where p and p' are submodules of an ambient module.

linear_map.sup_quotient_equiv_quotient_inf

Second Isomorphism Law : the canonical map from p/(p ∩ p') to (p+p')/p' as a linear isomorphism.

linear_map.prod

The cartesian product of two linear maps as a linear map.

linear_map.pi

pi construction for linear functions. From a family of linear functions it produces a linear function into a family of modules.

linear_map.proj

The projections from a family of modules are linear maps.

linear_map.infi_ker_proj_equiv

If I and J are disjoint index sets, the product of the kernels of the Jth projections of φ is linearly equivalent to the product over I.

linear_map.diag

diag i j is the identity map if i = j. Otherwise it is the constant 0 map.

linear_map.std_basis

The standard basis of the product of φ.

linear_map.general_linear_group

The group of invertible linear maps from M to itself

linear_map.general_linear_group.to_linear_equiv

An invertible linear map f determines an equivalence from M to itself.

linear_map.general_linear_group.of_linear_equiv

An equivalence from M to itself determines an invertible linear map.

linear_map.general_linear_group.general_linear_equiv

The general linear group on R and M is multiplicatively equivalent to the type of linear equivalences between M and itself.