pub enum InstProofLink {
HasProof(ProofIdx),
ProofsDisabled(Option<TermIdx>),
}
Expand description
A Z3 instantiation.
Variants§
HasProof(ProofIdx)
When proofs are enabled (i.e. if z3 was run with proof=true
) non-axiom
instantiations will include a pointer to the instantiation proof step.
ProofsDisabled(Option<TermIdx>)
When proofs are disabled, non-axiom instantiations have no link to the
fact (i.e. their body) that was instantiated. However, we use a hack to
try and find the proof term nevertheless: the [mk-app]
immediately
preceding the [instantiation]
line is generally the term we just
proved.
Trait Implementations§
Source§impl Clone for InstProofLink
impl Clone for InstProofLink
Source§fn clone(&self) -> InstProofLink
fn clone(&self) -> InstProofLink
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 moreSource§impl Debug for InstProofLink
impl Debug for InstProofLink
impl Copy for InstProofLink
Auto Trait Implementations§
impl Freeze for InstProofLink
impl RefUnwindSafe for InstProofLink
impl Send for InstProofLink
impl Sync for InstProofLink
impl Unpin for InstProofLink
impl UnwindSafe for InstProofLink
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> 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