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: TermIdThe parsed term id of the proof step itself (corresponds to ProofIdx).
Only useful for debugging.
kind: ProofStepKindThe kind of proof step. Which logical rule was used to derive the result.
result: TermIdxThe (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: StackIdxThe 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