pub struct Instantiation {
pub quantifier: TermId,
pub substitution: FxHashMap<Spur, TermId>,
pub result: TermId,
pub generation: u32,
pub reason: InstantiationReason,
pub cost: f64,
}Expand description
An instantiation of a quantified formula
Fields§
§quantifier: TermIdThe quantifier that was instantiated
substitution: FxHashMap<Spur, TermId>The substitution used (variable name -> term)
result: TermIdThe resulting ground term (body with substitution applied)
generation: u32Generation at which this instantiation was created
reason: InstantiationReasonReason for instantiation (for proof generation)
cost: f64Cost/weight of this instantiation
Implementations§
Source§impl Instantiation
impl Instantiation
Sourcepub fn new(
quantifier: TermId,
substitution: FxHashMap<Spur, TermId>,
result: TermId,
generation: u32,
) -> Self
pub fn new( quantifier: TermId, substitution: FxHashMap<Spur, TermId>, result: TermId, generation: u32, ) -> Self
Create a new instantiation
Sourcepub fn with_reason(
quantifier: TermId,
substitution: FxHashMap<Spur, TermId>,
result: TermId,
generation: u32,
reason: InstantiationReason,
) -> Self
pub fn with_reason( quantifier: TermId, substitution: FxHashMap<Spur, TermId>, result: TermId, generation: u32, reason: InstantiationReason, ) -> Self
Create with reason
Sourcepub fn binding_key(&self) -> Vec<(Spur, TermId)>
pub fn binding_key(&self) -> Vec<(Spur, TermId)>
Get the binding as a sorted vector for hashing
Trait Implementations§
Source§impl Clone for Instantiation
impl Clone for Instantiation
Source§fn clone(&self) -> Instantiation
fn clone(&self) -> Instantiation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for Instantiation
impl RefUnwindSafe for Instantiation
impl Send for Instantiation
impl Sync for Instantiation
impl Unpin for Instantiation
impl UnwindSafe for Instantiation
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<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