pub enum MatchKind {
MBQI {
quant: QuantIdx,
bound_terms: BoxSlice<ENodeIdx>,
},
TheorySolving {
axiom_id: TermId,
bound_terms: BoxSlice<TermIdx>,
rewrite_of: Option<TermIdx>,
},
Axiom {
axiom: QuantIdx,
pattern: PatternIdx,
bound_terms: BoxSlice<TermIdx>,
},
Quantifier {
quant: QuantIdx,
pattern: PatternIdx,
bound_terms: BoxSlice<ENodeIdx>,
},
}
Variants§
Implementations§
Source§impl MatchKind
impl MatchKind
pub fn quant_pat(&self) -> Option<QuantPat>
pub fn quant_idx(&self) -> Option<QuantIdx>
pub fn pattern(&self) -> Option<PatternIdx>
pub fn bound_terms<T>( &self, enode: impl Fn(ENodeIdx) -> T, term: impl Fn(TermIdx) -> T, ) -> Box<[T]>
pub fn is_discovered(&self) -> bool
pub fn is_mbqi(&self) -> bool
pub fn rewrite_of(&self) -> Option<TermIdx>
pub fn bound_term<'a>( &self, to_tidx: impl Fn(ENodeIdx) -> &'a ENode, qvar: NonMaxU32, ) -> Option<TermIdx>
pub fn quant_and_enodes(&self) -> Option<(QuantIdx, BoundVars<'_, ENodeIdx>)>
Trait Implementations§
Source§impl DisplayWithCtxt<DisplayCtxt<'_>, ()> for &MatchKind
impl DisplayWithCtxt<DisplayCtxt<'_>, ()> for &MatchKind
Source§fn fmt_with(
self,
f: &mut Formatter<'_>,
ctxt: &DisplayCtxt<'_>,
data: &mut (),
) -> Result
fn fmt_with( self, f: &mut Formatter<'_>, ctxt: &DisplayCtxt<'_>, data: &mut (), ) -> Result
Display the term with the given context and data. Should not be used
outside of the implementations of this trait.
Source§fn with(self, ctxt: &Ctxt) -> DisplayWrapperEmpty<'_, Ctxt, Data, Self>
fn with(self, ctxt: &Ctxt) -> DisplayWrapperEmpty<'_, Ctxt, Data, Self>
Wrap the receiver in an object which carries along a parser context to
enable efficient printing of terms. For quick debugging use the
debug
method instead to avoid building a full context.Source§fn with_data<'a, 'b>(
self,
ctxt: &'a Ctxt,
data: &'b mut Data,
) -> DisplayWrapperData<'a, 'b, Ctxt, Data, Self>where
Self: Copy,
fn with_data<'a, 'b>(
self,
ctxt: &'a Ctxt,
data: &'b mut Data,
) -> DisplayWrapperData<'a, 'b, Ctxt, Data, Self>where
Self: Copy,
To be used with
TermIdx
or SynthIdx
where we want to pass in the
surrounding quantifier as data
such that qvars are printed with names.
Otherwise, always use with
instead (which uses default data
).impl Eq for MatchKind
impl StructuralPartialEq for MatchKind
Auto Trait Implementations§
impl Freeze for MatchKind
impl RefUnwindSafe for MatchKind
impl Send for MatchKind
impl Sync for MatchKind
impl Unpin for MatchKind
impl UnwindSafe for MatchKind
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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