-
Notifications
You must be signed in to change notification settings - Fork 298
[Merged by Bors] - feat(group_theory/torsion): extension closedness, and torsion scalars in modules #13172
Conversation
… over modules Co-authored by: Alex J. Best <alex.j.best@gmail.com>
d3b9309
to
99aa028
Compare
src/group_theory/torsion.lean
Outdated
/-- Torsion groups are closed under extensions. -/ | ||
@[to_additive add_is_torsion.extension_closed | ||
"Additive torsion groups are closed under extensions."] | ||
lemma is_torsion.extension_closed (tN : is_torsion N) [N.normal] (tGN : is_torsion (G ⧸ N)) : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please generalize this to surjective maps f : G → H
and N = ker f
? Even better might be to also turn N → G
into an arbitrary group hom, whose range is the kernel of f
.
That way the lemma would be easier to apply in a situation that is morally a quotient, but not defeq to one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've given this a shot I think -- apologies if I've misunderstood the suggestion, especially since I think the surjective assumption was only required in a different spot. Let me know if I've indeed put nonsense up here now. And thanks as usual for the pointer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Two more minor comments. Otherwise LGTM
bors d+
src/group_theory/torsion.lean
Outdated
section module | ||
|
||
-- A (semi/)ring of scalars and a commutative monoid of elements | ||
variables (Fq R : Type*) [add_comm_monoid R] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these variable names are better, especially since you don't assume finiteness in the first lemma. But also because there are finite rings that aren't fields. So the Fq
seems to suggest the wrong thing, I think.
variables (Fq R : Type*) [add_comm_monoid R] | |
variables (R M : Type*) [add_comm_monoid M] |
src/group_theory/torsion.lean
Outdated
/-- The image of a surjective torsion group homomorphism is torsion. -/ | ||
@[to_additive add_is_torsion.of_surj_hom | ||
"The image of a surjective additive torsion group homomorphism is torsion."] | ||
lemma is_torsion.of_surj_hom {f : G →* H} (hf : function.surjective f) (tG : is_torsion G) : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lemma is_torsion.of_surj_hom {f : G →* H} (hf : function.surjective f) (tG : is_torsion G) : | |
lemma is_torsion.of_surjective {f : G →* H} (hf : function.surjective f) (tG : is_torsion G) : |
✌️ Julian can now approve this pull request. To approve and merge a pull request, simply reply with |
Co-authored by: Johan Commelin <johan@commelin.net>
bors r+ |
… in modules (#13172) Co-authored by: Alex J. Best <alex.j.best@gmail.com>
Pull request successfully merged into master. Build succeeded: |
* origin/master: (394 commits) feat(data/set/[basic|prod]): make `×ˢ` bind more strongly, and define `mem.out` (#13422) feat(order/basic): Simple shortcut lemmas (#13421) chore(number_theory/dioph): Cleanup (#13403) feat(analysis/normed_space/exponential): ring homomorphisms are preserved by the exponential (#13402) feat(algebraic_geometry/projective_spectrum): degree zero part of a localized ring (#13398) feat(set_theory/cardinal): A set of cardinals is small iff it's bounded (#13373) feat(data/polynomial/{derivative, iterated_deriv}): reduce assumptions (#13368) feat(algebra/monoid_algebra/grading): Use the new graded_algebra API (#13360) feat(algebra/group/to_additive): let @[to_additive] mimic alias’s docstrings (#13330) feat(set_theory/cofinality): Basic fundamental sequences (#13326) feat(special_functions/pow): continuity of real to complex power (#13244) feat(group_theory/torsion): extension closedness, and torsion scalars in modules (#13172) feat(category_theory/path_category): canonical quotient of a path category (#13159) refactor(number_theory/padics/padic_norm): Switch nat and rat definitions (#12454) feat(analysis/normed): more lemmas about the sup norm on pi types and matrices (#13536) fix(category_theory/monoidal): improve hygiene in coherence tactic (#13507) feat(src/number_theory/cyclotomic/discriminant): add discr_prime_pow_ne_two (#13465) chore(algebra/group/type_tags): missing simp lemmas (#13553) feat(measure_theory): allow measurability to prove ae_strongly_measurable (#13427) refactor(algebra/hom/group): generalize a few lemmas to `monoid_hom_class` (#13447) chore(data/list/cycle): Add basic `simp` lemmas + minor golfing (#13533) feat(algebra/hom/non_unital_alg): introduce notation for non-unital algebra homomorphisms (#13470) chore(algebra/group/defs): Declare `field_simps` attribute earlier (#13543) feat(analysis/normed/normed_field): add `one_le_(nn)norm_one` for nontrivial normed rings (#13556) refactor(analysis/calculus/cont_diff): reorder the file (#13468) move(set_theory/*): Organize in folders (#13530) chore(number_theory/zsqrtd/basic): simplify le_total proof (#13555) feat(group_theory/perm/basic): Iterating a permutation is the same as taking a power (#13554) feat(data/real/sqrt): `sqrt x < y ↔ x < y^2` (#13546) feat(algebra/hom/group and *): introduce `mul_hom M N` notation `M →ₙ* N` (#13526) feat(group_theory/schreier): Schreier's lemma in terms of `group.fg` and `group.rank` (#13361) feat(linear_algebra/trace): dual_tensor_hom is an equivalence + basis-free characterization of the trace (#10372) feat(order/filter/basic): allow functions between different types in lemmas about [co]map by a constant function (#13542) feat(data/finset/basic): simp `to_finset_eq_empty` (#13531) feat(topology/algebra/algebra): ℚ-scalar multiplication is continuous (#13458) chore(model_theory/encoding): Improve the encoding of terms (#13532) feat(topology/separation): Finite sets in T2 spaces (#12845) feat(analysis/inner_product_space/gram_schmidt_ortho): Gram-Schmidt Orthogonalization and Orthonormalization (#12857) chore(algebra/big_operators/fin): golf finset.prod_range (#13535) chore(analysis/normed_space/star): make an argument explicit (#13523) feat(*): `op_op_op_comm` lemmas (#13528) chore(data/real/nnreal): add commuted version of `nnreal.mul_finset_sup` (#13512) chore(*/matrix): order `m` and `n` alphabetically (#13510) feat(analysis/calculus/specific_functions): trivial extra lemmas (#13516) feat(analysis): lemmas about nnnorm and nndist (#13498) feat(data/int/basic): add lemma `int.abs_le_one_iff` (#13513) feat(category_theory/limits): add characteristic predicate for zero objects (#13511) feat(order/filter/n_ary): Add lemma equating map₂ to map on the product (#13490) fix(analysis/locally_convex/balanced_hull_core): minimize import (#13450) feat(order/cover): define `wcovby` (#13424) ...
Co-authored by: Alex J. Best alex.j.best@gmail.com