pub enum ProofError {
NoProofFound,
DepthExceeded,
OccursCheck {
variable: String,
term: ProofTerm,
},
UnificationFailed {
left: ProofTerm,
right: ProofTerm,
},
ExprUnificationFailed {
left: ProofExpr,
right: ProofExpr,
},
SymbolMismatch {
left: String,
right: String,
},
ArityMismatch {
expected: usize,
found: usize,
},
PatternNotDistinct(String),
NotAPattern(ProofExpr),
ScopeViolation {
var: String,
allowed: Vec<String>,
},
}Expand description
Errors that can occur during proof search.
Variants§
NoProofFound
No proof was found for the given goal.
DepthExceeded
The proof search exceeded the maximum depth limit.
OccursCheck
Unification failed due to occurs check. This prevents infinite types like x = f(x).
UnificationFailed
Unification failed because terms could not be unified.
ExprUnificationFailed
Expression-level unification failed.
SymbolMismatch
Symbol mismatch during unification.
ArityMismatch
Arity mismatch during unification.
PatternNotDistinct(String)
The pattern has non-distinct arguments (e.g., ?F(x, x)) Miller patterns require distinct bound variables.
NotAPattern(ProofExpr)
Expression is not a valid Miller pattern. Pattern arguments must be Term(BoundVarRef(…)).
ScopeViolation
RHS uses variables not in pattern scope. In ?P(x) = Body, Body must only use variables that appear in the pattern.
Trait Implementations§
Source§impl Clone for ProofError
impl Clone for ProofError
Source§fn clone(&self) -> ProofError
fn clone(&self) -> ProofError
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 ProofError
impl Debug for ProofError
Source§impl Display for ProofError
impl Display for ProofError
Source§impl Error for ProofError
impl Error for ProofError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for ProofError
impl RefUnwindSafe for ProofError
impl Send for ProofError
impl Sync for ProofError
impl Unpin for ProofError
impl UnwindSafe for ProofError
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