A module over the integers spanned by a family has rank at most the number of members that are not torsion
ProvedModuleRank.rank_int_le_card_of_span_eq_top_of_torsion_notMemLet be an abelian group, regarded as a module over , spanned by a finite family , and let be a finite set of indices such that every with is torsion, that is, some nonzero integer multiple of it vanishes. Then the rank of , as a cardinal, is at most the cardinality of .
The members outside contribute nothing: the submodule spanned by the members inside has torsion quotient, so that quotient has rank zero, and rank is additive across it because is a domain and so satisfies rank-nullity. No hypothesis is placed on the members inside -- they need not be independent, nor of infinite order -- so the statement is an inequality and not an equality.
Three further points. The rank is the cardinal-valued one, so the inequality has content even
when is not of finite rank; the natural-number valued finrank form follows in one step, and
is strictly weaker, since truncating an infinite rank to zero would make it say nothing exactly
where it matters. The set carries no minimality, no non-vanishing and no
non-torsion requirement: empty is admissible, and then the hypotheses force the rank to be
; everything is admissible too, and then the torsion hypothesis is empty. And no
finiteness is imposed on the index type -- the family may be infinite, so long as the members
outside are torsion.
import Mathlib
namespace ModuleRank
theorem rank_int_le_card_of_span_eq_top_of_torsion_notMem {ι : Type*} {M : Type*}
[AddCommGroup M] (a : ι → M) (hspan : Submodule.span ℤ (Set.range a) = ⊤)
(J : Finset ι) (htor : ∀ i ∉ J, ∃ n : ℤ, n ≠ 0 ∧ n • a i = 0) :
Module.rank ℤ M ≤ (J.card : Cardinal) := by
sorry
end ModuleRank