[][src]Trait automatic_relations::convolution::Convolution

pub trait Convolution<F: Symbol> {
    fn convolute<T: AsRef<[Option<Term<F>>]>>(
        terms: T
    ) -> Term<Rank<Convoluted<F>>>;
fn deconvolute(term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>;
fn generic_automaton<Q: State>(
        aut: &Automaton<Rank<Convoluted<F>>, Q, NoLabel>
    ) -> Automaton<Convoluted<F>, Q, Convoluted<u32>>;
fn equality<Q: State>(
        aut: &Automaton<F, Q, NoLabel>,
        n: usize
    ) -> Automaton<Rank<Convoluted<F>>, Q, NoLabel>;
fn state_convolution<E, Q: LanguageState<F, E>>(
        initial_state: Convoluted<Q>,
        env: &E
    ) -> Automaton<Rank<Convoluted<F>>, Convoluted<Q>, NoLabel>;
fn search<'a, 'e, Q: State, X: 'a + Spawnable>(
        automata: &'a [&'e Automaton<Rank<Convoluted<F>>, Q, NoLabel>],
        patterns: Vec<Convoluted<Pattern<F, X>>>,
        kill_signal: Receiver<()>
    ) -> Box<dyn Iterator<Item = Result<Vec<Term<Rank<Convoluted<F>>>>, Killed>> + 'a>; }

Convolution operations.

Required methods

fn convolute<T: AsRef<[Option<Term<F>>]>>(terms: T) -> Term<Rank<Convoluted<F>>>

Perform a term convolution.

fn deconvolute(term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>

Perform a term deconvolution.

fn generic_automaton<Q: State>(
    aut: &Automaton<Rank<Convoluted<F>>, Q, NoLabel>
) -> Automaton<Convoluted<F>, Q, Convoluted<u32>>

Generic alternating-automaton out of a convoluted bottom-up automaton.

fn equality<Q: State>(
    aut: &Automaton<F, Q, NoLabel>,
    n: usize
) -> Automaton<Rank<Convoluted<F>>, Q, NoLabel>

Compute the equality predicate over a domain between n variables.

fn state_convolution<E, Q: LanguageState<F, E>>(
    initial_state: Convoluted<Q>,
    env: &E
) -> Automaton<Rank<Convoluted<F>>, Convoluted<Q>, NoLabel>

fn search<'a, 'e, Q: State, X: 'a + Spawnable>(
    automata: &'a [&'e Automaton<Rank<Convoluted<F>>, Q, NoLabel>],
    patterns: Vec<Convoluted<Pattern<F, X>>>,
    kill_signal: Receiver<()>
) -> Box<dyn Iterator<Item = Result<Vec<Term<Rank<Convoluted<F>>>>, Killed>> + 'a>

Loading content...

Implementors

impl<F: Symbol + Ranked> Convolution<F> for Convolution[src]

fn convolute<T: AsRef<[Option<Term<F>>]>>(terms: T) -> Term<Rank<Convoluted<F>>>[src]

Perform a term convolution.

fn deconvolute(_term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>[src]

Perform a term deconvolution.

fn equality<Q: State>(
    aut: &Automaton<F, Q, NoLabel>,
    n: usize
) -> Automaton<Rank<Convoluted<F>>, Q, NoLabel>
[src]

Create the equality relation between n terms.

Loading content...