Zulip Chat Archive
Stream: new members
Topic: Casting subgroups/submodules
Jarod Alper (Sep 08 2024 at 15:49):
Quick question: I have a commutative ring , an -module , and submodules and . How do I treat as a submodule of ? For instance, if I have another submodule , I would like to be able to write .
variable {R : Type*} [CommRing R]
variable {M: Type*} [AddCommGroup M] [Module R M]
variable {N P : Submodule R M}
variable {N' : Submodule R N}
example : P = N' := by
sorry
Edward van de Meent (Sep 08 2024 at 16:05):
the way to avoid this entirely would be to rather assume N' : Submodule R M
and hN' : N' ≤ N
. if that's not possible, you will possibly rather want to talk about docs#Submodule.map combined with docs#Submodule.subtype
Edward van de Meent (Sep 08 2024 at 16:14):
that should give you N'.map (N.subtype) = P
as a statement to prove
Eric Wieser (Sep 08 2024 at 23:30):
Edward van de Meent said:
the way to avoid this entirely would be to rather assume
N' : Submodule R M
andhN' : N' ⊆ N
. if that's not possible, you will possibly rather want to talk about docs#Submodule.map combined with docs#Submodule.subtype
hN' : N' ≤ N
is preferred here
Jarod Alper (Sep 09 2024 at 07:07):
Edward van de Meent said:
the way to avoid this entirely would be to rather assume
N' : Submodule R M
andhN' : N' ⊆ N
. if that's not possible, you will possibly rather want to talk about docs#Submodule.map combined with docs#Submodule.subtype
In my case, is given as the kernel of a map so I can't use your first suggestion. Following your second suggestion, I was able to define the inclusion from N' to N and from N to M, define the composition, and then take the range.
Jarod Alper (Sep 09 2024 at 07:13):
Eric Wieser said:
hN' : N' ≤ N
is preferred here
Yeah, it's silly Lean doesn't recognize N' ⊆ N
. There should at least be a linter that recognizes this mistake. I'm sure that I had learned in some Lean tutorials to write N' ≤ N
, but I guess I had forgotten and it took me 15 minutes the other day debugging an error to realize that this was the problem.
Last updated: May 02 2025 at 03:31 UTC