pub struct ProofStep {
pub id: TermId,
pub kind: ProofStepKind,
pub result: TermIdx,
pub prerequisites: BoxSlice<ProofIdx>,
pub frame: StackIdx,
}
Expand description
A Z3 proof step and associated data. Represents a single step where z3 proved a boolean expression. These steps have dependencies which combine to build up a proof tree. Parts of this tree may be under hypotheses in which case the solver tries to do a proof by contradiction (and the proved terms are only valid under these hypotheses).
Fields§
§id: TermId
The parsed term id of the proof step itself (corresponds to ProofIdx
).
Only useful for debugging.
kind: ProofStepKind
The kind of proof step. Which logical rule was used to derive the result.
result: TermIdx
The (boolean) term which this step proves. This might not necessarily be a “full” proof if this step (transitively) depends on any hypotheses!
prerequisites: BoxSlice<ProofIdx>
The antecedents of this proof step.
frame: StackIdx
The frame in which this proof step was created. The proof is forgotten (and may be repeated later) when the frame is popped.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProofStep
impl RefUnwindSafe for ProofStep
impl Send for ProofStep
impl Sync for ProofStep
impl Unpin for ProofStep
impl UnwindSafe for ProofStep
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
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>
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>
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