pub struct Refinement {
pub var_name: String,
pub predicate: TLExpr,
}Expand description
Refinement: a logical predicate that refines a type.
Fields§
§var_name: StringVariable name being refined
predicate: TLExprRefinement predicate
Implementations§
Source§impl Refinement
impl Refinement
pub fn new(var_name: impl Into<String>, predicate: TLExpr) -> Self
Sourcepub fn free_vars(&self) -> HashSet<String>
pub fn free_vars(&self) -> HashSet<String>
Get free variables in the refinement (excluding the refined variable)
Sourcepub fn substitute(&self, subst: &HashMap<String, Term>) -> Refinement
pub fn substitute(&self, subst: &HashMap<String, Term>) -> Refinement
Substitute variables in the refinement
Sourcepub fn simplify(&self) -> Refinement
pub fn simplify(&self) -> Refinement
Simplify the refinement predicate
Sourcepub fn implies(&self, other: &Refinement) -> bool
pub fn implies(&self, other: &Refinement) -> bool
Check if refinement implies another refinement
Trait Implementations§
Source§impl Clone for Refinement
impl Clone for Refinement
Source§fn clone(&self) -> Refinement
fn clone(&self) -> Refinement
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 Refinement
impl Debug for Refinement
Source§impl<'de> Deserialize<'de> for Refinement
impl<'de> Deserialize<'de> for Refinement
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for Refinement
impl Display for Refinement
Source§impl PartialEq for Refinement
impl PartialEq for Refinement
Source§impl Serialize for Refinement
impl Serialize for Refinement
impl StructuralPartialEq for Refinement
Auto Trait Implementations§
impl Freeze for Refinement
impl RefUnwindSafe for Refinement
impl Send for Refinement
impl Sync for Refinement
impl Unpin for Refinement
impl UnwindSafe for Refinement
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