pub enum ProofTerm {
Constant(String),
Variable(String),
Function(String, Vec<ProofTerm>),
Group(Vec<ProofTerm>),
BoundVarRef(String),
}Expand description
Owned term representation for proof manipulation.
Decoupled from arena-allocated Term<'a> to allow proof trees to persist
beyond the lifetime of the parsing arena.
§See Also
ProofExpr- Expression-level representation containingProofTermsunify::unify_terms- Unification algorithm for termsunify::Substitution- Maps variables to termscertifier::certify- Converts proof trees to kernel terms
Variants§
Constant(String)
A constant symbol (e.g., “Socrates”, “42”)
Variable(String)
A variable symbol (e.g., “x”, “y”)
Function(String, Vec<ProofTerm>)
A function application (e.g., “father(x)”, “add(1, 2)”)
Group(Vec<ProofTerm>)
A group/tuple of terms (e.g., “(x, y)”)
BoundVarRef(String)
Reference to a bound variable in a pattern context. Distinct from Variable (unification var) and Constant (global name). Prevents variable capture bugs during alpha-conversion.
Trait Implementations§
impl Eq for ProofTerm
impl StructuralPartialEq for ProofTerm
Auto Trait Implementations§
impl Freeze for ProofTerm
impl RefUnwindSafe for ProofTerm
impl Send for ProofTerm
impl Sync for ProofTerm
impl Unpin for ProofTerm
impl UnwindSafe for ProofTerm
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