File: Mathlib/LinearAlgebra/Dimension/DivisionRing.lean

full_name: Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0
code: /-- If a vector space has a finite dimension, the index set of `Basis.ofVectorSpace` is finite. -/
theorem Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 (h : Module.rank K V < ℵ₀) :
    (Basis.ofVectorSpaceIndex K V).Finite 
goal: (Basis.ofVectorSpaceIndex K V).Finite

full_name: rank_quotient_add_rank_of_divisionRing
code: /-- Also see `rank_quotient_add_rank`. -/
theorem rank_quotient_add_rank_of_divisionRing (p : Submodule K V) :
    Module.rank K (V ⧸ p) + Module.rank K p = Module.rank K V 
goal: Module.rank K (V ⧸ p) + Module.rank K ↥p = Module.rank K V

full_name: DivisionRing.hasRankNullity
code: instance DivisionRing.hasRankNullity : HasRankNullity.{u₀} K 
goal: HasRankNullity.{u₀, u} K

full_name: rank_add_rank_split
code: /-- This is mostly an auxiliary lemma for `Submodule.rank_sup_add_rank_inf_eq`. -/
theorem rank_add_rank_split (db : V₂ →ₗ[K] V) (eb : V₃ →ₗ[K] V) (cd : V₁ →ₗ[K] V₂)
    (ce : V₁ →ₗ[K] V₃) (hde : ⊤ ≤ LinearMap.range db ⊔ LinearMap.range eb) (hgd : ker cd = ⊥)
    (eq : db.comp cd = eb.comp ce) (eq₂ : ∀ d e, db d = eb e → ∃ c, cd c = d ∧ ce c = e) :
    Module.rank K V + Module.rank K V₁ = Module.rank K V₂ + Module.rank K V₃ 
goal: Module.rank K V + Module.rank K V₁ = Module.rank K V₂ + Module.rank K V₃

full_name: linearIndependent_of_top_le_span_of_card_eq_finrank
code: theorem linearIndependent_of_top_le_span_of_card_eq_finrank {ι : Type*} [Fintype ι] {b : ι → V}
    (spans : ⊤ ≤ span K (Set.range b)) (card_eq : Fintype.card ι = finrank K V) :
    LinearIndependent K b 
goal: LinearIndependent K b

full_name: linearIndependent_iff_card_eq_finrank_span
code: /-- A finite family of vectors is linearly independent if and only if
its cardinality equals the dimension of its span. -/
theorem linearIndependent_iff_card_eq_finrank_span {ι : Type*} [Fintype ι] {b : ι → V} :
    LinearIndependent K b ↔ Fintype.card ι = (Set.range b).finrank K 
goal: LinearIndependent K b ↔ Fintype.card ι = Set.finrank K (Set.range b)

full_name: linearIndependent_iff_card_le_finrank_span
code: theorem linearIndependent_iff_card_le_finrank_span {ι : Type*} [Fintype ι] {b : ι → V} :
    LinearIndependent K b ↔ Fintype.card ι ≤ (Set.range b).finrank K 
goal: LinearIndependent K b ↔ Fintype.card ι ≤ Set.finrank K (Set.range b)

full_name: basisOfTopLeSpanOfCardEqFinrank
code: /-- A family of `finrank K V` vectors forms a basis if they span the whole space. -/
noncomputable def basisOfTopLeSpanOfCardEqFinrank {ι : Type*} [Fintype ι] (b : ι → V)
    (le_span : ⊤ ≤ span K (Set.range b)) (card_eq : Fintype.card ι = finrank K V) : Basis ι K V 
goal: Basis ι K V

full_name: coe_basisOfTopLeSpanOfCardEqFinrank
code: @[simp]
theorem coe_basisOfTopLeSpanOfCardEqFinrank {ι : Type*} [Fintype ι] (b : ι → V)
    (le_span : ⊤ ≤ span K (Set.range b)) (card_eq : Fintype.card ι = finrank K V) :
    ⇑(basisOfTopLeSpanOfCardEqFinrank b le_span card_eq) = b 
goal: ⇑(basisOfTopLeSpanOfCardEqFinrank b le_span card_eq) = b

full_name: finsetBasisOfTopLeSpanOfCardEqFinrank
code: /-- A finset of `finrank K V` vectors forms a basis if they span the whole space. -/
@[simps! repr_apply]
noncomputable def finsetBasisOfTopLeSpanOfCardEqFinrank {s : Finset V}
    (le_span : ⊤ ≤ span K (s : Set V)) (card_eq : s.card = finrank K V) : Basis {x // x ∈ s} K V 
goal: Basis { x // x ∈ s } K V

full_name: finsetBasisOfTopLeSpanOfCardEqFinrank_repr_apply
code: /-- A finset of `finrank K V` vectors forms a basis if they span the whole space. -/
@[simps! repr_apply]
noncomputable def finsetBasisOfTopLeSpanOfCardEqFinrank {s : Finset V}
    (le_span : ⊤ ≤ span K (s : Set V)) (card_eq : s.card = finrank K V) : Basis {x // x ∈ s} K V 
goal: ∀ (a : V),
  (finsetBasisOfTopLeSpanOfCardEqFinrank le_span card_eq).repr a =
    ⋯.repr ((LinearMap.codRestrict (Submodule.span K (Set.range Subtype.val)) LinearMap.id ⋯) a)

full_name: setBasisOfTopLeSpanOfCardEqFinrank_repr_apply
code: /-- A set of `finrank K V` vectors forms a basis if they span the whole space. -/
@[simps! repr_apply]
noncomputable def setBasisOfTopLeSpanOfCardEqFinrank {s : Set V} [Fintype s]
    (le_span : ⊤ ≤ span K s) (card_eq : s.toFinset.card = finrank K V) : Basis s K V 
goal: ∀ (a : V),
  (setBasisOfTopLeSpanOfCardEqFinrank le_span card_eq).repr a =
    ⋯.repr ((LinearMap.codRestrict (Submodule.span K (Set.range Subtype.val)) LinearMap.id ⋯) a)

full_name: setBasisOfTopLeSpanOfCardEqFinrank
code: /-- A set of `finrank K V` vectors forms a basis if they span the whole space. -/
@[simps! repr_apply]
noncomputable def setBasisOfTopLeSpanOfCardEqFinrank {s : Set V} [Fintype s]
    (le_span : ⊤ ≤ span K s) (card_eq : s.toFinset.card = finrank K V) : Basis s K V 
goal: Basis (↑s) K V

full_name: max_aleph0_card_le_rank_fun_nat
code: /-- Key lemma towards the Erdős-Kaplansky theorem from https://mathoverflow.net/a/168624 -/
theorem max_aleph0_card_le_rank_fun_nat : max ℵ₀ #K ≤ Module.rank K (ℕ → K) 
goal: max ℵ₀ #K ≤ Module.rank K (ℕ → K)

full_name: rank_fun_infinite
code: theorem rank_fun_infinite {ι : Type v} [hι : Infinite ι] : Module.rank K (ι → K) = #(ι → K) 
goal: Module.rank K (ι → K) = #(ι → K)

full_name: rank_dual_eq_card_dual_of_aleph0_le_rank'
code: /-- The **Erdős-Kaplansky Theorem**: the dual of an infinite-dimensional vector space
  over a division ring has dimension equal to its cardinality. -/
theorem rank_dual_eq_card_dual_of_aleph0_le_rank' {V : Type*} [AddCommGroup V] [Module K V]
    (h : ℵ₀ ≤ Module.rank K V) : Module.rank Kᵐᵒᵖ (V →ₗ[K] K) = #(V →ₗ[K] K) 
goal: Module.rank Kᵐᵒᵖ (V →ₗ[K] K) = #(V →ₗ[K] K)

full_name: rank_dual_eq_card_dual_of_aleph0_le_rank
code: /-- The **Erdős-Kaplansky Theorem** over a field. -/
theorem rank_dual_eq_card_dual_of_aleph0_le_rank {K V} [Field K] [AddCommGroup V] [Module K V]
    (h : ℵ₀ ≤ Module.rank K V) : Module.rank K (V →ₗ[K] K) = #(V →ₗ[K] K) 
goal: Module.rank K (V →ₗ[K] K) = #(V →ₗ[K] K)

full_name: lift_rank_lt_rank_dual'
code: theorem lift_rank_lt_rank_dual' {V : Type v} [AddCommGroup V] [Module K V]
    (h : ℵ₀ ≤ Module.rank K V) :
    Cardinal.lift.{u} (Module.rank K V) < Module.rank Kᵐᵒᵖ (V →ₗ[K] K) 
goal: Cardinal.lift.{u, v} (Module.rank K V) < Module.rank Kᵐᵒᵖ (V →ₗ[K] K)

full_name: lift_rank_lt_rank_dual
code: theorem lift_rank_lt_rank_dual {K : Type u} {V : Type v} [Field K] [AddCommGroup V] [Module K V]
    (h : ℵ₀ ≤ Module.rank K V) :
    Cardinal.lift.{u} (Module.rank K V) < Module.rank K (V →ₗ[K] K) 
goal: Cardinal.lift.{u, v} (Module.rank K V) < Module.rank K (V →ₗ[K] K)

full_name: rank_lt_rank_dual'
code: theorem rank_lt_rank_dual' {V : Type u} [AddCommGroup V] [Module K V] (h : ℵ₀ ≤ Module.rank K V) :
    Module.rank K V < Module.rank Kᵐᵒᵖ (V →ₗ[K] K) 
goal: Module.rank K V < Module.rank Kᵐᵒᵖ (V →ₗ[K] K)

full_name: rank_lt_rank_dual
code: theorem rank_lt_rank_dual {K V : Type u} [Field K] [AddCommGroup V] [Module K V]
    (h : ℵ₀ ≤ Module.rank K V) : Module.rank K V < Module.rank K (V →ₗ[K] K) 
goal: Module.rank K V < Module.rank K (V →ₗ[K] K)