[][src]Struct varisat::prop::graph::ImplGraph

pub struct ImplGraph {
    pub nodes: Vec<ImplNode>,
}

The implication graph.

This is a DAG having all assigned variables as nodes. It has unit clauses, assumptions and decisions as sources. For each propagated assignment it has incomming edges from the literals whose assignment caused the propagation to happen.

Fields

nodes: Vec<ImplNode>

Contains only valid data for indices of assigned variables.

Methods

impl ImplGraph[src]

pub fn set_var_count(&mut self, count: usize)[src]

Update structures for a new variable count.

pub fn reason(&self, var: Var) -> &Reason[src]

Get the reason for an assigned variable.

Returns stale data if the variable isn't assigned.

pub fn level(&self, var: Var) -> usize[src]

Get the decision level of an assigned variable.

Returns stale data if the variable isn't assigned.

pub fn depth(&self, var: Var) -> usize[src]

Get the trail depth of an assigned variable.

Returns stale data if the variable isn't assigned.

pub fn update_reason(&mut self, var: Var, reason: Reason)[src]

Updates the reason for an assigned variable.

Make sure the reason vars are in front of the assigned variable in the trail.

pub fn update_removed_unit(&mut self, var: Var)[src]

Updates the reason and depth of a unit clause removed from the trail.

pub fn is_removed_unit(&self, var: Var) -> bool[src]

Trait Implementations

impl Default for ImplGraph[src]

Auto Trait Implementations

impl Send for ImplGraph

impl Sync for ImplGraph

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<Reference, Outer, OuterFieldType, Inner> HasPart<Nested<Outer, Inner>> for Reference where
    Inner: Part,
    Outer: Part<PartType = Field<OuterFieldType>>,
    OuterFieldType: HasPart<Inner, RawTarget = OuterFieldType> + PartialRefTarget + ?Sized,
    Reference: HasPart<Outer> + ?Sized