pub type Lit<P, C, V> = App<P, Args<Term<C, V>>>;
Expand description
Literal, i.e. application of term arguments (containing constants C
and variables V
) to predicate P
.
Aliased Type§
struct Lit<P, C, V>(/* private fields */);
Implementations§
source§impl<P, C, V: Eq + Hash> Lit<P, C, V>
impl<P, C, V: Eq + Hash> Lit<P, C, V>
sourcepub fn fresh_vars<W>(
self,
map: &mut HashMap<V, W>,
st: &mut W::State
) -> Lit<P, C, W>where
W: Clone + Fresh,
pub fn fresh_vars<W>( self, map: &mut HashMap<V, W>, st: &mut W::State ) -> Lit<P, C, W>where W: Clone + Fresh,
For every variable v
in the literal,
replace v
by its corresponding mapping if one exists, otherwise
replace v
by a fresh variable and add a new mapping from v
to it.