pub struct RuleApplication<Bound> {
pub rule_index: usize,
pub instantiations: Vec<Bound>,
}Expand description
An element of a deductive proof. Proofs can be transmitted and later validatated as long as the validator assumes the same rule list as the prover.
Unbound variables are bound to the values in instantiations. They are bound in order of
initial appearance.
Given the rule:
ifall
[?z ex:foo ?x DG]
then
[?x ex:bar ?z DG]and the RuleApplication:
RuleApplication {
rule_index: 0,
instantiations: vec!["foer", "bary"],
}The rule application represents the deductive proof:
[foer ex:foo bary DG]
therefore
[bary ex:bar foer DG]Fields§
§rule_index: usizeThe index of the rule in the implicitly associated rule list.
instantiations: Vec<Bound>Bindings for unbound names in the rule in order of appearance.
Trait Implementations§
Source§impl<Bound: Debug> Debug for RuleApplication<Bound>
impl<Bound: Debug> Debug for RuleApplication<Bound>
Source§impl<Bound: PartialEq> PartialEq for RuleApplication<Bound>
impl<Bound: PartialEq> PartialEq for RuleApplication<Bound>
impl<Bound: Eq> Eq for RuleApplication<Bound>
impl<Bound> StructuralPartialEq for RuleApplication<Bound>
Auto Trait Implementations§
impl<Bound> Freeze for RuleApplication<Bound>
impl<Bound> RefUnwindSafe for RuleApplication<Bound>where
Bound: RefUnwindSafe,
impl<Bound> Send for RuleApplication<Bound>where
Bound: Send,
impl<Bound> Sync for RuleApplication<Bound>where
Bound: Sync,
impl<Bound> Unpin for RuleApplication<Bound>where
Bound: Unpin,
impl<Bound> UnwindSafe for RuleApplication<Bound>where
Bound: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more