Zulip Chat Archive
Stream: Is there code for X?
Topic: Ideals of an algebra are submodules
Kevin Buzzard (May 14 2020 at 11:16):
import ring_theory.noetherian -- or whatever
variables (R : Type) [comm_ring R]
example (S : Type) [comm_ring S] [algebra R S] (I : ideal S) : submodule R S :=
sorry
I've tried library_search
, suggest
and hint
. Is this function supposed to have a name or be in some system?
Kenny Lau (May 14 2020 at 13:01):
@Kevin Buzzard have you tried looking into the actual proof?
Kenny Lau (May 14 2020 at 13:04):
aha I did it explicitly:
https://github.com/leanprover-community/mathlib/blob/master/src/ring_theory/polynomial.lean#L138
/-- Transport an ideal of `R[X]` to an `R`-submodule of `R[X]`. -/
def of_polynomial (I : ideal (polynomial R)) : submodule R (polynomial R) :=
{ carrier := I.carrier,
zero := I.zero_mem,
add := λ _ _, I.add_mem,
smul := λ c x H, by rw [← C_mul']; exact submodule.smul_mem _ _ H }
Kevin Buzzard (May 14 2020 at 13:16):
import ring_theory.noetherian
import data.polynomial
import tactic
import ring_theory.algebra_operations
noncomputable theory
variables (R : Type) [comm_ring R] (hR : is_noetherian_ring R)
def ideal.to_submodule (S : Type) [comm_ring S] [algebra R S] (I : ideal S) :
submodule R S :=
{ carrier := I,
zero := I.zero_mem,
add := λ x y, I.add_mem,
smul := sorry}
I was surprised smul
was hard
Kevin Buzzard (May 14 2020 at 13:17):
I still can't do it and your proof doesn't cover this case
Reid Barton (May 14 2020 at 13:18):
I don't really know how the library is set up but isn't a sub-S-module also a sub-R-module?
Kevin Buzzard (May 14 2020 at 13:19):
Mathematically, sure.
Kevin Buzzard (May 14 2020 at 13:20):
but we're talking about submodules of S
, right? Is submodule S S
preferred to ideal S
?
Reid Barton (May 14 2020 at 13:21):
I'm just trying to remove irrelevant distractions like ideal
. But now I am not entirely sure it is irrelevant. How does one turn an S-module into an R-module?
Kevin Buzzard (May 14 2020 at 13:21):
there's a canonical map R -> S from [algebra R S]
Kevin Buzzard (May 14 2020 at 13:22):
and I want to pull back along that canonical map, and because that map is canonical, an S-module or S-submodule is an R-module or R-submodule canonically
Kevin Buzzard (May 14 2020 at 13:22):
My instinct is that automation should be making that map for me
Kevin Buzzard (May 14 2020 at 13:23):
because registering the instance [algebra R S]
means that now there is a canonical map which should be somehow inserted into a system?
Reid Barton (May 14 2020 at 13:23):
Is there not something like comap
for modules? Or am I just looking in the wrong place?
Johan Commelin (May 14 2020 at 14:31):
There's map
and comap
for submodules (and for ideals, which is slightly different). You need to feed it a ring hom.
Johan Commelin (May 14 2020 at 14:33):
But I don't think it has been hooked up to the algebra
API
Last updated: Dec 20 2023 at 11:08 UTC