Commit 2024-03-05 01:29 0b52a6a5
View on Github →feat: sum and product of commuting semisimple endomorphisms (#10808)
- Prove
isSemisimple_of_mem_adjoin
: if two commuting endomorphisms of a finite-dimensional vector space over a perfect field are both semisimple, then every endomorphism in the algebra generated by them (in particular their product and sum) is semisimple. - In the same file LinearAlgebra/Semisimple.lean,
eq_zero_of_isNilpotent_isSemisimple
andisSemisimple_of_squarefree_aeval_eq_zero
are golfed, andIsSemisimple.minpoly_squarefree
is proved RingTheory/SimpleModule.lean: - Define
IsSemisimpleRing R
to mean that R is a semisimple R-module. add properties of simple modules and a characterization (they are exactly the quotients of the ring by maximal left ideals). - The annihilator of a semisimple module is a radical ideal.
- Any module over a semisimple ring is semisimple.
- A finite product of semisimple rings is semisimple.
- Any quotient of a semisimple ring is semisimple.
- Add Artin--Wedderburn as a TODO (proof_wanted).
- Order/Atoms.lean: add the instance from
IsSimpleOrder
toComplementedLattice
, so thatIsSimpleModule → IsSemisimpleModule
is automatically inferred. Prerequisites for showing a product of semisimple rings is semisimple: - Algebra/Module/Submodule/Map.lean: generalize
orderIsoMapComap
so that it only requiresRingHomSurjective
rather thanRingHomInvPair
- Algebra/Ring/CompTypeclasses.lean, Mathlib/Algebra/Ring/Pi.lean, Algebra/Ring/Prod.lean: add RingHomSurjective instances RingTheory/Artinian.lean:
quotNilradicalEquivPi
: the quotient of a commutative Artinian ring R by its nilradical is isomorphic to the (finite) product of its quotients by maximal ideals (therefore a product of fields).equivPi
: if the ring is moreover reduced, then the ring itself is a product of fields. Deduce that R is a semisimple ring and both R and R[X] are decomposition monoids. RequiresRingEquiv.quotientBot
in RingTheory/Ideal/QuotientOperations.lean.- Data/Polynomial/Eval.lean: the polynomial ring over a finite product of rings is isomorphic to the product of polynomial rings over individual rings. (Used to show R[X] is a decomposition monoid.) Other necessary results:
- FieldTheory/Minpoly/Field.lean: the minimal polynomial of an element in a reduced algebra over a field is radical.
- RingTheory/PowerBasis.lean: generalize
PowerBasis.finiteDimensional
and rename it to.finite
. Annihilator stuff, some of which do not end up being used: - RingTheory/Ideal/Operations.lean: define
Module.annihilator
and redefineSubmodule.annihilator
in terms of it; add lemmas, including one that says an arbitrary intersection of radical ideals is radical. The new lemmaIdeal.isRadical_iff_pow_one_lt
depends onpow_imp_self_of_one_lt
in Mathlib/Data/Nat/Interval.lean, which is also used to golf the proof ofisRadical_iff_pow_one_lt
. - Algebra/Module/Torsion.lean: add a lemma and an instance (unused)
- Data/Polynomial/Module/Basic.lean: add a def (unused) and a lemma
- LinearAlgebra/AnnihilatingPolynomial.lean: add lemma
span_minpoly_eq_annihilator
Some results about idempotent linear maps (projections) and idempotent elements, used to show that any (left) ideal in a semisimple ring is spanned by an idempotent element (unused): - LinearAlgebra/Projection.lean: add def
isIdempotentElemEquiv
- LinearAlgebra/Span.lean: add two lemmas