Algebraic properties of dual numbers #
Main results #
DualNumber.instLocalRing
: The dual numbers over a fieldK
form a local ring.DualNumber.instPrincipalIdealRing
: The dual numbers over a fieldK
form 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)
:
@[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)
:
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 ↔ DualNumber.eps ∣ x
theorem
DualNumber.isNilpotent_iff_eps_dvd
{R : Type u_1}
[DivisionSemiring R]
{x : DualNumber R}
:
IsNilpotent x ↔ DualNumber.eps ∣ x
theorem
DualNumber.isMaximal_span_singleton_eps
{K : Type u_2}
[DivisionRing K]
:
(Ideal.span {DualNumber.eps}).IsMaximal
theorem
DualNumber.maximalIdeal_eq_span_singleton_eps
{K : Type u_2}
[Field K]
:
IsLocalRing.maximalIdeal (DualNumber K) = Ideal.span {DualNumber.eps}
theorem
DualNumber.exists_mul_left_or_mul_right
{K : Type u_2}
[DivisionRing K]
(a b : DualNumber K)
: