GroupSignature

Trait GroupSignature 

Source
pub trait GroupSignature:
    MonoidSignature
    + TryInverseSignature
    + TryLeftInverseSignature
    + TryRightInverseSignature
    + LeftCancellativeCompositionSignature
    + RightCancellativeCompositionSignature {
    // Required method
    fn inverse(&self, a: &Self::Set) -> Self::Set;

    // Provided methods
    fn int_pow(&self, a: &Self::Set, n: &Integer) -> Self::Set { ... }
    fn generated_finite_subgroup_table(
        &self,
        generators: Vec<Self::Set>,
    ) -> (FiniteGroupMultiplicationTable, Vec<Self::Set>, HashMap<Self::Set, usize>)
       where Self::Set: Hash + Eq { ... }
    fn generated_finite_subgroup(
        &self,
        gens: Vec<Self::Set>,
    ) -> FiniteSubgroup<Self::Set>
       where Self::Set: Hash + Eq { ... }
}
Expand description

When inverses always exist.

Required Methods§

Source

fn inverse(&self, a: &Self::Set) -> Self::Set

Provided Methods§

Source

fn int_pow(&self, a: &Self::Set, n: &Integer) -> Self::Set

Source

fn generated_finite_subgroup_table( &self, generators: Vec<Self::Set>, ) -> (FiniteGroupMultiplicationTable, Vec<Self::Set>, HashMap<Self::Set, usize>)
where Self::Set: Hash + Eq,

Source

fn generated_finite_subgroup( &self, gens: Vec<Self::Set>, ) -> FiniteSubgroup<Self::Set>
where Self::Set: Hash + Eq,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl GroupSignature for C2CanonicalStructure

Source§

impl GroupSignature for algebraeon_groups::permutation::PermutationCanonicalStructure

Source§

impl<const N: usize> GroupSignature for algebraeon_groups::examples::symmetric::PermutationCanonicalStructure<N>