pub struct ExtendedResolution { /* private fields */ }Expand description
Extended resolution manager
Implementations§
Source§impl ExtendedResolution
impl ExtendedResolution
Sourcepub fn add_extension(&mut self, def: ExtensionType) -> Var
pub fn add_extension(&mut self, def: ExtensionType) -> Var
Add an extension variable
Sourcepub fn add_ite(&mut self, cond: Lit, then_lit: Lit, else_lit: Lit) -> Var
pub fn add_ite(&mut self, cond: Lit, then_lit: Lit, else_lit: Lit) -> Var
Add an ITE extension: z ↔ (if c then t else e)
Sourcepub fn get_all_cnf(&self) -> Vec<Vec<Lit>>
pub fn get_all_cnf(&self) -> Vec<Vec<Lit>>
Get all CNF clauses for all extensions
Sourcepub fn get_extension(&self, var: Var) -> Option<&Extension>
pub fn get_extension(&self, var: Var) -> Option<&Extension>
Get extension definition for a variable
Sourcepub fn is_extension(&self, var: Var) -> bool
pub fn is_extension(&self, var: Var) -> bool
Check if a variable is an extension variable
Sourcepub fn num_extensions(&self) -> usize
pub fn num_extensions(&self) -> usize
Get the number of extension variables
Sourcepub fn get_extensions(&self) -> Vec<Var>
pub fn get_extensions(&self) -> Vec<Var>
Get all extension variables
Sourcepub fn tseitin_and(&mut self, lits: &[Lit]) -> Var
pub fn tseitin_and(&mut self, lits: &[Lit]) -> Var
Tseitin transformation for a formula Returns the top-level variable representing the formula
Sourcepub fn tseitin_or(&mut self, lits: &[Lit]) -> Var
pub fn tseitin_or(&mut self, lits: &[Lit]) -> Var
Tseitin transformation for OR
Auto Trait Implementations§
impl Freeze for ExtendedResolution
impl RefUnwindSafe for ExtendedResolution
impl Send for ExtendedResolution
impl Sync for ExtendedResolution
impl Unpin for ExtendedResolution
impl UnsafeUnpin for ExtendedResolution
impl UnwindSafe for ExtendedResolution
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more