Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: generalize finrank_add_finrank_quotient to PIDs #9151

Closed
wants to merge 1 commit into from

Conversation

erdOne
Copy link
Member

@erdOne erdOne commented Dec 19, 2023


Open in Gitpod

@erdOne erdOne changed the title feat generalize finrank_add_finrank_quotient to PIDs feat: generalize finrank_add_finrank_quotient to PIDs Dec 19, 2023
@@ -644,6 +644,16 @@ theorem equiv [Finite R M] (e : M ≃ₗ[R] N) : Finite R N :=

instance ulift [Finite R M] : Finite R (ULift M) := equiv ULift.moduleEquiv.symm

theorem iff_FG {N : Submodule R M} : Module.Finite R N ↔ N.FG := Module.finite_def.trans (fg_top _)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
theorem iff_FG {N : Submodule R M} : Module.Finite R N ↔ N.FG := Module.finite_def.trans (fg_top _)
theorem iff_fg {N : Submodule R M} : Module.Finite R N ↔ N.FG := Module.finite_def.trans (fg_top _)

Comment on lines +284 to +294
instance [IsDomain R] : NoZeroSMulDivisors R (M ⧸ Submodule.torsion R M) := by
constructor
intros c x hcx
rw [or_iff_not_imp_left]
intro hc
obtain ⟨x, rfl⟩ := Submodule.mkQ_surjective _ x
rw [← LinearMap.map_smul, Submodule.mkQ_apply, Submodule.Quotient.mk_eq_zero] at hcx
obtain ⟨n, hn⟩ := hcx
simp only [Submodule.mkQ_apply, Submodule.Quotient.mk_eq_zero, Submonoid.mk_smul, exists_prop]
refine ⟨n * ⟨c, mem_nonZeroDivisors_of_ne_zero hc⟩, ?_⟩
simpa [Submonoid.smul_def, smul_smul] using hn
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +296 to +297
instance [IsDomain R] [IsPrincipalIdealRing R] : Module.Free R (M ⧸ Submodule.torsion R M) :=
Module.free_of_finite_type_torsion_free'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some build failures here and below

Comment on lines +445 to +446
lemma FiniteDimensional.finrank_add_finrank_quotient_le (N : Submodule R M) :
finrank R N + finrank R (M ⧸ N) ≤ finrank R M := by
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just letting you know: I'm trying to prove the rank version of this and I've established a key lemma in another branch using your prior work in #8842.

mathlib-bors bot pushed a commit that referenced this pull request Dec 26, 2023
… results about `Module.rank` in #9151 (#9253)

+ Proves that `Sup` (ciSup) commutes with cardinal addition (`ciSup_add_ciSup`) and multiplication. Generalize results in Cardinal/Basic introduced in #8842 to achieve this.

+ Use `ciSup_add_ciSup` to prove that the rank of a module is always at least the rank of a submodule plus the rank of the quotient by the submodule. Deduce that the rank of a product module is at least the sum of the ranks of the two factors.

+ Show that quotienting by a torsion submodule preserves the rank.

+ Golf `rank_zero_iff_forall_zero` using a recently added lemma.

Co-authored-by: Andrew Yang <the.erd.one@gmail.com>



Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Dec 26, 2023
@erdOne
Copy link
Member Author

erdOne commented Dec 27, 2023

Closing in favor of #9298

@erdOne erdOne closed this Dec 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge-conflict The PR has a merge conflict with master, and needs manual merging.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants