pub enum SimpDirection {
Forward,
Reversed,
}Expand description
How a committed lemma may join a simp set. Discovery commits equations
in enumeration orientation, so usability as a rewrite rule is a property
to RECOVER, not assume.
Variants§
Forward
LHS head is a program fn (count x2 (x0 ++ x1) = plus …,
decode (encode xs) = xs): use as-is — rewrites toward
decomposed/builtin normal form.
Reversed
LHS is builtin-headed but the RHS head is a program fn (the trivia
(x0 ++ x1) = append x0 x1): use as ← name — rewrites the opaque
program fn INTO its builtin shape (an unfolding equation the fn’s own
def can’t provide when its recursion is stuck on a symbolic arg).
Trait Implementations§
Source§impl Clone for SimpDirection
impl Clone for SimpDirection
Source§fn clone(&self) -> SimpDirection
fn clone(&self) -> SimpDirection
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 moreimpl Copy for SimpDirection
Source§impl Debug for SimpDirection
impl Debug for SimpDirection
impl Eq for SimpDirection
Source§impl PartialEq for SimpDirection
impl PartialEq for SimpDirection
Source§fn eq(&self, other: &SimpDirection) -> bool
fn eq(&self, other: &SimpDirection) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SimpDirection
Auto Trait Implementations§
impl Freeze for SimpDirection
impl RefUnwindSafe for SimpDirection
impl Send for SimpDirection
impl Sync for SimpDirection
impl Unpin for SimpDirection
impl UnsafeUnpin for SimpDirection
impl UnwindSafe for SimpDirection
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.