pub struct EGraph {
pub equalities: Equalities,
/* private fields */
}
Fields§
§equalities: Equalities
Implementations§
Source§impl EGraph
impl EGraph
pub fn get_blame( &self, tidx: TermIdx, inst: Option<(InstIdx, FxHashSet<EqTransIdx>)>, terms: &Terms, stack: &Stack, ) -> ENodeBlame
pub fn new_enode( &mut self, blame: ENodeBlame, term: TermIdx, z3_generation: NonMaxU32, stack: &Stack, ) -> Result<ENodeIdx>
pub fn get_enode(&mut self, term: TermIdx, stack: &Stack) -> Result<ENodeIdx>
pub fn get_enode_imm(&self, term: TermIdx, stack: &Stack) -> Option<ENodeIdx>
pub fn get_given(&self, from: ENodeIdx, to: ENodeIdx) -> Option<EqGivenIdx>
pub fn new_given_equality( &mut self, from: ENodeIdx, expl: EqualityExpl, stack: &Stack, ) -> Result<()>
pub fn new_trans_equality( &mut self, from: ENodeIdx, to: ENodeIdx, stack: &Stack, mismatch: TransEqAllowed, ) -> Result<Result<EqTransIdx, ENodeIdx>>
pub fn check_eq(&self, from: ENodeIdx, to: ENodeIdx, stack: &Stack) -> bool
pub fn path_to_root( &self, from: ENodeIdx, root: Option<ENodeIdx>, stack: &Stack, ) -> Result<(Option<ENodeIdx>, Vec<ENodeIdx>)>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EGraph
impl RefUnwindSafe for EGraph
impl Send for EGraph
impl Sync for EGraph
impl Unpin for EGraph
impl UnwindSafe for EGraph
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> 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