pub trait PrincipalLocalRing: EuclideanRing {
// Required methods
fn max_ideal_gen(&self) -> &Self::Element;
fn nilpotent_power(&self) -> Option<usize>;
// Provided method
fn valuation(&self, x: &Self::Element) -> Option<usize> { ... }
}unstable-enable only.Expand description
Trait for principal ideal rings that additionally are local rings, i.e. have a unique maximal ideal.
Note that in this case, the unique maximal ideal is clearly generated by a single element.
Such an element can be accessed via PrincipalLocalRing::max_ideal_gen(). Equivalently,
a principal local ring can be characterized by the property that for any elements x, y,
either x | y or y | x.
Principal local rings are also valuation rings, i.e. have a function val: R -> ZZ_>0 u {∞}
that satisfies val(xy) = val(x) + val(y), val(x + y) >= min(val(x), val(y)) and if `val(x)
= val(y)
theny | x. This can be accessed using [PrincipalLocalRing::valuation()`].
§Availability
This API is marked as unstable and is only available when the unstable-enable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.
Required Methods§
Sourcefn max_ideal_gen(&self) -> &Self::Element
fn max_ideal_gen(&self) -> &Self::Element
Returns a generator p or the unique maximal ideal (p) of this ring.
In other words, for each element x we have either that p | x or x | 1.
Sourcefn nilpotent_power(&self) -> Option<usize>
fn nilpotent_power(&self) -> Option<usize>
Returns the smallest nonnegative integer e such that p^e = 0 where p is
the generator of the maximal ideal.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".