pub enum LfscTerm {
Var(String),
IntLit(i64),
RatLit(i64, i64),
True,
False,
App(String, Vec<LfscTerm>),
Lambda(String, Box<LfscSort>, Box<LfscTerm>),
Pi(String, Box<LfscSort>, Box<LfscTerm>),
SideCondition(String, Vec<LfscTerm>),
Hold(Box<LfscTerm>),
Annotate(Box<LfscTerm>, Box<LfscSort>),
}Expand description
An LFSC term
Variants§
Var(String)
Variable reference
IntLit(i64)
Integer literal
RatLit(i64, i64)
Rational literal (numerator, denominator)
True
Boolean true
False
Boolean false
App(String, Vec<LfscTerm>)
Application
Lambda(String, Box<LfscSort>, Box<LfscTerm>)
Lambda abstraction
Pi(String, Box<LfscSort>, Box<LfscTerm>)
Pi type (dependent function type)
SideCondition(String, Vec<LfscTerm>)
Side condition application
Hold(Box<LfscTerm>)
Proof hold (assertion)
Annotate(Box<LfscTerm>, Box<LfscSort>)
Type annotation
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LfscTerm
impl RefUnwindSafe for LfscTerm
impl Send for LfscTerm
impl Sync for LfscTerm
impl Unpin for LfscTerm
impl UnsafeUnpin for LfscTerm
impl UnwindSafe for LfscTerm
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,
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>
Converts
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>
Converts
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