Skip to main content

AbstractLoop

Trait AbstractLoop 

Source
pub trait AbstractLoop<O: Operator>: AbstractQuasigroup<O, Element = Self::Element> + Identity<O> {
    type Element: AbstractLoopElement<O, Parent = Self>;

    // Provided method
    fn is_abstract_loop(&self, _: O) -> bool { ... }
}
Expand description

A loop is a quasigroup with an unique identity element, e.

A set equipped with a closed binary operation possessing the divisibility property and a unique identity element.

§Identity element

∃! e ∈ Self, ∀ a ∈ Self, ∃ r, l ∈ Self such that l ∘ a = a ∘ r = e.

The left inverse r and right inverse l are not required to be equal.

This property follows from

∀ a ∈ Self, ∃ e ∈ Self, such that e ∘ a = a ∘ e = a.

Required Associated Types§

Source

type Element: AbstractLoopElement<O, Parent = Self>

Provided Methods§

Source

fn is_abstract_loop(&self, _: O) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T, O: Operator> AbstractLoop<O> for T
where T: AbstractQuasigroup<O> + Identity<O>, Elem<T>: IsIdentity<O>,