pub trait Ring {
type Set: Eq;
type Additive: CommutativeGroup<Set = Self::Set>;
type Multiplicative: Monoid<Set = Self::Set> + Distributive<Self::Additive>;
// Required methods
fn additive(&self) -> &Self::Additive;
fn multiplicative(&self) -> &Self::Multiplicative;
// Provided methods
fn add(&self, x: Self::Set, y: Self::Set) -> Self::Set { ... }
fn zero(&self) -> Self::Set { ... }
fn neg(&self, x: Self::Set) -> Self::Set { ... }
fn mul(&self, x: Self::Set, y: Self::Set) -> Self::Set { ... }
fn one(&self) -> Self::Set { ... }
}
Expand description
環。
集合 $R$ と二つの二項演算 $\circ$, $\ast$ の組 $(R, \circ, \ast)$ であり、次の性質を満たす。
- $(R, \circ, 0)$ は可換群をなす。
- $(R, \ast, 1)$ はモノイドをなす。
- 乗法 $\ast$ は加法 $\circ$ について分配法則を満たす。
Required Associated Types§
sourcetype Additive: CommutativeGroup<Set = Self::Set>
type Additive: CommutativeGroup<Set = Self::Set>
可換群 $(R, \circ, 0)$ に対応する型。
sourcetype Multiplicative: Monoid<Set = Self::Set> + Distributive<Self::Additive>
type Multiplicative: Monoid<Set = Self::Set> + Distributive<Self::Additive>
モノイド $(R, \ast, 1)$ に対応する型。