pub enum ProofStrategy {
Auto,
Induction(String),
ByRule(String),
Script(String),
}Expand description
Proof strategies for theorem verification.
Variants§
Auto
Automatic proof search using backward chaining. The prover will try all available inference rules.
Induction(String)
Induction on a variable (for inductive types like Nat, List).
Example: Proof: Induction on n.
ByRule(String)
Direct application of a specific rule.
Example: Proof: ModusPonens.
Script(String)
An explicit tactic-script proof, written in the English-esque vernacular and
run by the tactic framework. Example:
Proof: Assume h. By cases on h, right, by assumption. Left, by assumption.
Trait Implementations§
Source§impl Clone for ProofStrategy
impl Clone for ProofStrategy
Source§fn clone(&self) -> ProofStrategy
fn clone(&self) -> ProofStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 ProofStrategy
impl Debug for ProofStrategy
Source§impl Default for ProofStrategy
impl Default for ProofStrategy
Source§fn default() -> ProofStrategy
fn default() -> ProofStrategy
Returns the “default value” for a type. Read more
Source§impl PartialEq for ProofStrategy
impl PartialEq for ProofStrategy
Source§fn eq(&self, other: &ProofStrategy) -> bool
fn eq(&self, other: &ProofStrategy) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ProofStrategy
Auto Trait Implementations§
impl Freeze for ProofStrategy
impl RefUnwindSafe for ProofStrategy
impl Send for ProofStrategy
impl Sync for ProofStrategy
impl Unpin for ProofStrategy
impl UnsafeUnpin for ProofStrategy
impl UnwindSafe for ProofStrategy
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.