More operations on modules and ideals #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Equations
- submodule.has_smul' = {smul := submodule.map₂ (linear_map.lsmul R M)}
This duplicates the global smul_eq_mul
, but doesn't have to unfold anywhere near as much to
apply.
N.annihilator
is the ideal of all elements r : R
such that r • N = 0
.
Equations
- N.annihilator = linear_map.ker (linear_map.lsmul R ↥N)
Dependent version of submodule.smul_induction_on
.
Given s
, a generating set of R
, to check that an x : M
falls in a
submodule M'
of x
, we only need to show that r ^ n • x ∈ M'
for some n
for each r : s
.
If x
is an I
-multiple of the submodule spanned by f '' s
,
then we can write x
as an I
-linear combination of the elements of f '' s
.
N.colon P
is the ideal of all elements r : R
such that r • P ⊆ N
.
Equations
- N.colon P = (submodule.map N.mkq P).annihilator
Equations
An ideal is radical if it contains its radical.
Equations
- I.is_radical = (I.radical ≤ I)
An ideal is radical iff it is equal to its radical.
Alias of the reverse direction of ideal.radical_eq_iff
.
If I
divides J
, then I
contains J
.
In a Dedekind domain, to divide and contain are equivalent, see ideal.dvd_iff_le
.
Equations
- ideal.unique_units = {to_inhabited := {default := 1}, uniq := _}
I.comap f
is the preimage of I
under f
.
Instances for ideal.comap
The ideal
version of set.image_subset_preimage_of_inverse
.
The ideal
version of set.preimage_subset_image_of_inverse
.
The smallest S
-submodule that contains all x ∈ I * y ∈ J
is also the smallest R
-submodule that does so.
map
and comap
are adjoint, and the composition map f ∘ comap f
is the
identity
Equations
- ideal.gi_map_comap f hf = galois_insertion.monotone_intro _ _ _ _
Correspondence theorem
Equations
- ideal.rel_iso_of_surjective f hf = {to_equiv := {to_fun := λ (J : ideal S), ⟨ideal.comap f J, _⟩, inv_fun := λ (I : {p // ideal.comap f ⊥ ≤ p}), ideal.map f I.val, left_inv := _, right_inv := _}, map_rel_iff' := _}
The map on ideals induced by a surjective map preserves inclusion.
Equations
- ideal.order_embedding_of_surjective f hf = (rel_iso.to_rel_embedding (ideal.rel_iso_of_surjective f hf)).trans (subtype.rel_embedding has_le.le (λ (p : ideal R), ideal.comap f ⊥ ≤ p))
If f : R ≃+* S
is a ring isomorphism and I : ideal R
, then comap f.symm (comap f) = I
.
Special case of the correspondence theorem for isomorphic rings
Equations
- ideal.rel_iso_of_bijective f hf = {to_equiv := {to_fun := ideal.comap f, inv_fun := ideal.map f, left_inv := _, right_inv := _}, map_rel_iff' := _}
The pushforward ideal.map
as a monoid-with-zero homomorphism.
A variant of finsupp.total
that takes in vectors valued in I
.
Equations
- ideal.finsupp_total ι M I v = (finsupp.total ι M R v).comp (finsupp.map_range.linear_map (submodule.subtype I))
A basis on S
gives a basis on ideal.span {x}
, by multiplying everything by x
.
Equations
- ideal.basis_span_singleton b hx = b.map (((linear_equiv.of_injective (⇑(algebra.lmul R S) x) _).trans (linear_equiv.of_eq (linear_map.range (⇑(algebra.lmul R S) x)) (submodule.restrict_scalars R (ideal.span {x})) ideal.basis_span_singleton._proof_24)).trans (linear_equiv.restrict_scalars R (submodule.restrict_scalars_equiv R S S (ideal.span {x}))))
Kernel of a ring homomorphism as an ideal of the domain.
Equations
- ring_hom.ker f = ideal.comap f ⊥
An element is in the kernel if and only if it maps to zero.
If the target is not the zero ring, then one is not in the kernel.
The kernel of a homomorphism to a domain is a prime ideal.
The kernel of a homomorphism to a field is a maximal ideal.
Equations
- submodule.module_submodule = {to_distrib_mul_action := {to_mul_action := {to_has_smul := submodule.has_smul' _inst_3, one_smul := _, mul_smul := _}, smul_zero := _, smul_add := _}, add_smul := _, zero_smul := _}
Auxiliary definition used to define lift_of_right_inverse
lift_of_right_inverse f hf g hg
is the unique ring homomorphism φ
- such that
φ.comp f = g
(ring_hom.lift_of_right_inverse_comp
), - where
f : A →+* B
is has a right_inversef_inv
(hf
), - and
g : B →+* C
satisfieshg : f.ker ≤ g.ker
.
See ring_hom.eq_lift_of_right_inverse
for the uniqueness lemma.
A .
| \
f | \ g
| \
v \⌟
B ----> C
∃!φ
Equations
- f.lift_of_right_inverse f_inv hf = {to_fun := λ (g : {g // ring_hom.ker f ≤ ring_hom.ker g}), f.lift_of_right_inverse_aux f_inv hf g.val _, inv_fun := λ (φ : B →+* C), ⟨φ.comp f, _⟩, left_inv := _, right_inv := _}
A non-computable version of ring_hom.lift_of_right_inverse
for when no computable right
inverse is available, that uses function.surj_inv
.