While this submission is a draft, it cannot be used by other submissions.

Rank of a tensor killed in two quotient spaces

Lax342547.QuotientRank · concepts/Lax342547/QuotientRank.lean · lax-342547

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Theorem

    The component-rank step in the annihilator argument of §6. Killing a matrix after projecting both factors loses at most the sum of the two kernel dimensions.

    Concept map
    2 concepts
    100%
    Proven claimThis conceptRelated conceptA → B: B builds on ADescendants are omitted for concepts with more than 10 descendants.
    Evidence

    This concept declares 3 statements. Each proof establishes one of them relative to its assumptions.

    1 killed_composition_rank proven

    3 killed_quotients_rank proven

    Lean source view on GitHub

    1import Lax342547.RestrictionRank
    2import Mathlib.LinearAlgebra.Matrix.Rank
    3import Mathlib.LinearAlgebra.Dual.Lemmas
    4
    5/-!
    6---
    7title: Rank of a tensor killed in two quotient spaces
    8type: theorem
    9---
    10The component-rank step in the annihilator argument of §6. Killing a
    11matrix after projecting both factors loses at most the sum of the two
    12kernel dimensions.
    13-/
    14
    15namespace Lax342547.QuotientRank
    16
    17axiom killed_composition_rank {K U V W X : Type} [Field K]
    18 [AddCommGroup U] [Module K U] [AddCommGroup V] [Module K V]
    19 [AddCommGroup W] [Module K W] [AddCommGroup X] [Module K X]
    20 [FiniteDimensional K V] [FiniteDimensional K W]
    21 (A : W →ₗ[K] X) (M : V →ₗ[K] W) (B : U →ₗ[K] V)
    22 (h : A.comp (M.comp B) = 0) :
    23 Module.finrank K (LinearMap.range M) ≤
    24 Module.finrank K (LinearMap.ker A) +
    25 (Module.finrank K V - Module.finrank K (LinearMap.range B))
    26
    27axiom killed_matrix_rank {K I J P Q : Type} [Field K]
    28 [Fintype I] [Fintype J] [Fintype P] [Fintype Q]
    29 (A : Matrix P I K) (M : Matrix I J K) (B : Matrix Q J K)
    30 (h : A * M * B.transpose = 0) :
    31 M.rank ≤ Module.finrank K (LinearMap.ker A.mulVecLin) +
    32 Module.finrank K (LinearMap.ker B.mulVecLin)
    33
    34axiom killed_quotients_rank {K V W : Type} [Field K]
    35 [AddCommGroup V] [Module K V] [AddCommGroup W] [Module K W]
    36 [FiniteDimensional K V] [FiniteDimensional K W]
    37 (M : Module.Dual K V →ₗ[K] W) (S : Submodule K W) (T : Submodule K V)
    38 (h : S.mkQ.comp (M.comp T.mkQ.dualMap) = 0) :
    39 Module.finrank K (LinearMap.range M) ≤ Module.finrank K S + Module.finrank K T
    40
    41end Lax342547.QuotientRank
    42
    Show ProofShow ProofShow Proof

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…