Trait nekolib::traits::binop::Ring

source ·
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§

source

type Set: Eq

集合 $R$ に対応する型。

source

type Additive: CommutativeGroup<Set = Self::Set>

可換群 $(R, \circ, 0)$ に対応する型。

source

type Multiplicative: Monoid<Set = Self::Set> + Distributive<Self::Additive>

モノイド $(R, \ast, 1)$ に対応する型。

Required Methods§

source

fn additive(&self) -> &Self::Additive

source

fn multiplicative(&self) -> &Self::Multiplicative

Provided Methods§

source

fn add(&self, x: Self::Set, y: Self::Set) -> Self::Set

和 $x \circ y$ を返す。

source

fn zero(&self) -> Self::Set

加法 $\circ$ の単位元 $0$ を返す。

source

fn neg(&self, x: Self::Set) -> Self::Set

加法 $\circ$ に関する $x$ の逆元 $-x$ を返す。

source

fn mul(&self, x: Self::Set, y: Self::Set) -> Self::Set

積 $x \ast y$ を返す。

source

fn one(&self) -> Self::Set

乗法 $\ast$ の単位元 $1$ を返す。

Implementors§