[][src]Trait chalk_engine::slg::TruncateOps

pub trait TruncateOps<I: Interner> {
    pub fn goal_needs_truncation(
        &mut self,
        interner: &I,
        subgoal: &InEnvironment<Goal<I>>
    ) -> bool;
pub fn answer_needs_truncation(
        &mut self,
        interner: &I,
        subst: &Substitution<I>
    ) -> bool; }

"Truncation" (called "abstraction" in the papers referenced below) refers to the act of modifying a goal or answer that has become too large in order to guarantee termination.

Currently we don't perform truncation (but it might me readded later).

Citations:

  • Terminating Evaluation of Logic Programs with Finite Three-Valued Models
    • Riguzzi and Swift; ACM Transactions on Computational Logic 2013
  • Radial Restraint
    • Grosof and Swift; 2013

Required methods

pub fn goal_needs_truncation(
    &mut self,
    interner: &I,
    subgoal: &InEnvironment<Goal<I>>
) -> bool
[src]

Check if subgoal is too large

pub fn answer_needs_truncation(
    &mut self,
    interner: &I,
    subst: &Substitution<I>
) -> bool
[src]

Check if subst is too large

Loading content...

Implementors

impl<I: Interner> TruncateOps<I> for TruncatingInferenceTable<I>[src]

Loading content...