Row rank equals column rank
ProvedHefferonLinAlg.row_rank_eq_column_rankFor any matrix over a field , the dimension of the span of the rows of equals the dimension of the span of the rows of its transpose — that is, of the columns of . Row rank equals column rank. This is the bridge Hefferon builds between the matrix-of-numbers view of Chapter One and the vector-space view of Chapter Two, and it is what lets one speak of the rank of a matrix.
import Mathlib open Matrix
namespace HefferonLinAlg
theorem row_rank_eq_column_rank
{K : Type*} [Field K] {m n : ℕ} (A : Matrix (Fin m) (Fin n) K) :
Module.finrank K (Submodule.span K (Set.range A)) =
Module.finrank K (Submodule.span K (Set.range Aᵀ)) := by
sorry
end HefferonLinAlgRead-back
What the Lean code literally says, in plain math · claude-opus-5
For every type (in an arbitrary universe) carrying a field structure, for every pair of natural numbers and (both left implicit, so the claim ranges over all of , including and/or ), and for every matrix with rows indexed by and columns indexed by and entries in — formally, is a function assigning to each row index and column index a scalar — the statement asserts the equality of two dimensions:
where the two sides are taken in different ambient spaces. On the left, denotes the -th row of regarded as the function , i.e. a vector of the -vector space of functions from the index set to ; the spanned set is literally the image of the map , that is, the set of all vectors of arising as some row of (a set, so repeated identical rows contribute only once, which does not affect the span), and the span is the -linear subspace of it generates. On the right, is the transposed matrix, with rows indexed by and columns by and entries ; denotes its -th row, i.e. the -th column of regarded as the function , a vector of the -vector space ; the spanned set is the image of the map , i.e. the set of all vectors of arising as some column of , and the span is the -linear subspace of it generates. Each side is the finite-dimensional rank invariant of the corresponding subspace, viewed as a -vector space in its own right, and this invariant is by convention for any module that is not finite-dimensional (a case that cannot arise here, since both subspaces sit inside finite-dimensional spaces). Both sides are compared as natural numbers, so the assertion is an equality in , not merely an inequality in either direction, and it carries no nondegeneracy hypothesis on : the zero matrix, and the degenerate shapes where (the left-hand set is empty, its span the zero subspace of , while the right-hand set consists of the columns, each the unique element of the zero space ) or (symmetrically), are all included in the claim. No hypotheses beyond " is a field" are assumed — in particular nothing about the characteristic, cardinality, or decidability of — and is the only explicit argument. The declaration is stated with its proof left as a placeholder.
Confirmed by the mission captain (proposal self-audit).