mathlib4 icon indicating copy to clipboard operation
mathlib4 copied to clipboard

feat(Algebra): define filtered ring homomorphism

Open Thmoas-Guan opened this issue 7 months ago • 4 comments

In this PR, we define the filtered ring morphisms on rings and prove some basic properties of them.

Co-authored-by: Huanyu Zheng @Yu-Misaka [email protected] Co-authored-by: Yi Yuan @yuanyi-350 [email protected] Co-authored-by: Weichen Jiao @AlbertJ-314 [email protected]


  • [ ] depends on: #26858
  • [ ] depends on: #26861

Open in Gitpod

migrated from #22208

Thmoas-Guan avatar Jul 07 '25 14:07 Thmoas-Guan

PR summary 16dc83e76d

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RingTheory.FilteredAlgebra.AssociatedGraded (new file) 534
Mathlib.RingTheory.FilteredAlgebra.FilteredHom (new file) 535

Declarations diff

+ AssociatedGraded + AssociatedGradedAddMonoidHom + AssociatedGradedAddMonoidHom_apply + AssociatedGradedAddMonoidHom_apply_of + AssociatedGradedAddMonoidHom_comp_eq_comp + AssociatedGradedRingHom + AssociatedGradedRingHom_apply + AssociatedGradedRingHom_apply_of + AssociatedGradedRingHom_comp_eq_comp + FilteredAddGroupHom + FilteredHom + FilteredHomClass + FilteredRingHom + Filtration.pow_lift + Filtration.pow_mem + GradedPiece + GradedPiece.HEq_mul_assoc + GradedPiece.HEq_mul_one + GradedPiece.HEq_one_mul + GradedPiece.add_mul + GradedPiece.gnpow + GradedPiece.gnpow_succ' + GradedPiece.gnpow_zero' + GradedPiece.intCast + GradedPiece.intCast_negSucc_ofNat + GradedPiece.intCast_ofNat + GradedPiece.mul_add + GradedPiece.mul_zero + GradedPiece.natCast + GradedPiece.natCast_succ + GradedPiece.natCast_zero + GradedPiece.zero_mul + HEq_eq_mk_coe_eq + HEq_eq_mk_eq + HEq_rfl + IsRingFiltration.hMul + IsStrict + IsStrict.strict + IsStrict.strict_lt + ext + gnpow_def + gradedMul_def + hMul + hasGMul + hasGMul.gradedMul + hasGMul.mk_int + hasGMul.mul_equiv_mul + hasGMul_AddSubgroup + induction_on + instance : AddMonoidHomClass (FilteredAddGroupHom FA FA_lt FB FB_lt) A B + instance : Coe (FilteredAddGroupHom FA FA_lt FB FB_lt) (FilteredHom FA FA_lt FB FB_lt) + instance : Coe (FilteredRingHom FR FR_lt FS FS_lt) (FilteredAddGroupHom FR FR_lt FS FS_lt) + instance : FilteredHomClass (FilteredAddGroupHom FA FA_lt FB FB_lt) FA FA_lt FB FB_lt + instance : FilteredHomClass (FilteredHom FA FA_lt FB FB_lt) FA FA_lt FB FB_lt + instance : FilteredHomClass (FilteredRingHom FR FR_lt FS FS_lt) FR FR_lt FS FS_lt + instance : FunLike (FilteredAddGroupHom FA FA_lt FB FB_lt) A B + instance : FunLike (FilteredHom FA FA_lt FB FB_lt) A B + instance : FunLike (FilteredRingHom FR FR_lt FS FS_lt) R S + instance : RingHomClass (FilteredRingHom FR FR_lt FS FS_lt) R S + instance [AddMonoid ι] [PartialOrder ι] [AddSubgroupClass σ R] + instance [IsRingFiltration F F_lt] : GradedMonoid.GOne (GradedPiece F F_lt) + instance [IsRingFiltration F F_lt] {i j : ι} : + instance [Preorder ι] [IsFiltration F F_lt] (i : ι) : Setoid (AddSubgroup.ofClass (F i)) + instance [hasGMul F F_lt] : DirectSum.GRing (GradedPiece F F_lt) + instance [hasGMul F F_lt] : DirectSum.GSemiring (GradedPiece F F_lt) + instance [hasGMul F F_lt] : GradedMonoid.GMonoid (GradedPiece F F_lt) + instance [hasGMul F F_lt] : GradedMonoid.GMul (GradedPiece F F_lt) + instance [hasGMul F F_lt] [DecidableEq ι] : Ring (AssociatedGraded F F_lt) + mk_apply_of_mem + mk_apply_of_not_mem + mk_eq + mk_injective + mk_mul + of + of_apply + of_eq_of_ne + of_eq_self + of_injective + sum_support_of + sum_univ_of + support_of + support_of_subset ++ GradedPieceHom ++ GradedPieceHom_apply_mk_eq_mk_piece_wise_hom ++ GradedPieceHom_comp ++ GradedPieceHom_comp_apply ++ mk +++ comp +++ id +++ piece_wise_hom

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (1.00, 0.06)
Current number Change Type
18 1 disabled simpNF lints

Current commit 975d471103 Reference commit 16dc83e76d

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

github-actions[bot] avatar Jul 07 '25 14:07 github-actions[bot]

This PR/issue depends on:

  • leanprover-community/mathlib4#26858
  • leanprover-community/mathlib4#26861 By Dependent Issues (🤖). Happy coding!

This pull request has conflicts, please merge master and resolve them.

This pull request has conflicts, please merge master and resolve them.

I handed this PR out to another collaborator, the new PR is #33223.

Thmoas-Guan avatar Dec 23 '25 10:12 Thmoas-Guan