souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
57 bool isBound(std::string varName)
const {
62 bool isBound(
const Argument* arg)
const;
BindingStore(const Clause *clause)
bool contains(const C &container, const typename C::value_type &element)
A utility to check generically whether a given element is contained in a given container.
void bindVariableStrongly(std::string varName)
Mark the given variable as strongly bound.
ConjBindingSet reduceDependency(const ConjBindingSet &origDependency)
Reduce a conjunctive set of dependencies based on the current bound variable set.
std::set< ConjBindingSet > DisjBindingSet
Intermediate representation of a horn clause.
std::set< std::string > weaklyBoundVariables
void generateBindingDependencies(const Clause *clause)
Generate all binding dependencies implied by the constraints within a given clause.
An abstract class for arguments.
std::set< std::string > stronglyBoundVariables
std::set< std::string > ConjBindingSet
bool reduceDependencies()
Reduce the full set of dependencies for all tracked variables, binding whatever needs to be bound.
void bindVariableWeakly(std::string varName)
Mark the given variable as weakly bound.
bool isBound(std::string varName) const
Check if a variable is bound.
void processEqualityBindings(const Argument *lhs, const Argument *rhs)
Add binding dependencies formed on lhs by a <lhs> = <rhs> equality constraint.
void addBindingDependency(std::string variable, ConjBindingSet dependency)
Add a new conjunction of variables as a potential binder for a given variable.
size_t numBoundArguments(const Atom *atom) const
Counts the number of bound arguments in the given atom.
std::map< std::string, DisjBindingSet > variableDependencies