Algebraic properties of dual numbers #
Main results #
DualNumber.instLocalRing: The dual numbers over a fieldKform a local ring.DualNumber.instPrincipalIdealRing: The dual numbers over a fieldKform a principal ideal ring.
theorem
TrivSqZeroExt.isNilpotent_iff_isNilpotent_fst
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
[Module Rแตแตแต M]
[SMulCommClass R Rแตแตแต M]
{x : TrivSqZeroExt R M}
:
IsNilpotent x โ IsNilpotent x.fst
@[simp]
theorem
TrivSqZeroExt.isNilpotent_inl_iff
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
[Module Rแตแตแต M]
[SMulCommClass R Rแตแตแต M]
(r : R)
:
IsNilpotent (inl r) โ IsNilpotent r
@[simp]
theorem
TrivSqZeroExt.isNilpotent_inr
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
[Module Rแตแตแต M]
[SMulCommClass R Rแตแตแต M]
(x : M)
:
IsNilpotent (inr x)
theorem
TrivSqZeroExt.isUnit_or_isNilpotent_of_isMaximal_isNilpotent
{R : Type u_1}
{M : Type u_2}
[CommSemiring R]
[AddCommGroup M]
[Module R M]
[Module Rแตแตแต M]
[IsCentralScalar R M]
(h : โ (I : Ideal R), I.IsMaximal โ IsNilpotent I)
(a : TrivSqZeroExt R M)
:
IsUnit a โจ IsNilpotent a
theorem
TrivSqZeroExt.isUnit_or_isNilpotent
{R : Type u_1}
{M : Type u_2}
[DivisionSemiring R]
[AddCommGroup M]
[Module R M]
[Module Rแตแตแต M]
[SMulCommClass R Rแตแตแต M]
(a : TrivSqZeroExt R M)
:
IsUnit a โจ IsNilpotent a
theorem
DualNumber.fst_eq_zero_iff_eps_dvd
{R : Type u_1}
[Semiring R]
{x : DualNumber R}
:
TrivSqZeroExt.fst x = 0 โ eps โฃ x
theorem
DualNumber.isNilpotent_iff_eps_dvd
{R : Type u_1}
[DivisionSemiring R]
{x : DualNumber R}
:
IsNilpotent x โ eps โฃ x
theorem
DualNumber.ideal_trichotomy
{K : Type u_2}
[DivisionRing K]
(I : Ideal (DualNumber K))
:
I = โฅ โจ I = Ideal.span {eps} โจ I = โค
theorem
DualNumber.isMaximal_span_singleton_eps
{K : Type u_2}
[DivisionRing K]
:
(Ideal.span {eps}).IsMaximal
theorem
DualNumber.exists_mul_left_or_mul_right
{K : Type u_2}
[DivisionRing K]
(a b : DualNumber K)
:
โ (c : DualNumber K), a * c = b โจ b * c = a