souffle
2.0.2-371-g6315b36
|
Transformation pass to eliminate grounded aliases. More...
#include <ResolveAliases.h>
Public Member Functions | |
ResolveAliasesTransformer * | clone () const override |
std::string | getName () const override |
Public Member Functions inherited from souffle::ast::transform::Transformer | |
bool | apply (TranslationUnit &translationUnit) |
virtual | ~Transformer ()=default |
Static Public Member Functions | |
static Own< Clause > | removeComplexTermsInAtoms (const Clause &clause) |
Removes complex terms in atoms, replacing them with constrained variables. More... | |
static Own< Clause > | removeTrivialEquality (const Clause &clause) |
Removes trivial equalities of the form t = t from the given clause. More... | |
static Own< Clause > | resolveAliases (const Clause &clause) |
Converts the given clause into a version without variables aliasing grounded variables. More... | |
Private Member Functions | |
bool | transform (TranslationUnit &translationUnit) override |
Transformation pass to eliminate grounded aliases.
e.g. resolve: a(r) , r = [x,y] => a(x,y) e.g. resolve: a(x) , !b(y) , y = x => a(x) , !b(x)
Definition at line 35 of file ResolveAliases.h.
|
inlineoverridevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 70 of file ResolveAliases.h.
|
inlineoverridevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 41 of file ResolveAliases.h.
|
static |
Removes complex terms in atoms, replacing them with constrained variables.
clause | the clause to be processed |
Definition at line 389 of file ResolveAliases.cpp.
References souffle::any_of().
|
static |
Removes trivial equalities of the form t = t from the given clause.
clause | the clause to be processed |
Definition at line 368 of file ResolveAliases.cpp.
|
static |
Converts the given clause into a version without variables aliasing grounded variables.
clause | the clause to be processed |
Definition at line 214 of file ResolveAliases.cpp.
|
overrideprivatevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 479 of file ResolveAliases.cpp.
References clauses.