souffle
2.0.2-371-g6315b36
|
Transformation pass to remove equivalent rules. More...
#include <MinimiseProgram.h>
Public Member Functions | |
MinimiseProgramTransformer * | 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 bool | areBijectivelyEquivalent (const analysis::NormalisedClause &left, const analysis::NormalisedClause &right) |
Private Member Functions | |
bool | transform (TranslationUnit &translationUnit) override |
Static Private Member Functions | |
static bool | existsValidPermutation (const analysis::NormalisedClause &left, const analysis::NormalisedClause &right, const std::vector< std::vector< unsigned int >> &permutationMatrix) |
static bool | isValidPermutation (const analysis::NormalisedClause &left, const analysis::NormalisedClause &right, const std::vector< unsigned int > &permutation) |
– Bijective Equivalence Helper Methods – More... | |
static bool | reduceClauseBodies (TranslationUnit &translationUnit) |
Remove redundant literals within a clause. More... | |
static bool | reduceLocallyEquivalentClauses (TranslationUnit &translationUnit) |
– Sub-Transformations – More... | |
static bool | reduceSingletonRelations (TranslationUnit &translationUnit) |
Removes redundant singleton relations. More... | |
static bool | removeRedundantClauses (TranslationUnit &translationUnit) |
Remove clauses that are only satisfied if they are already satisfied. More... | |
Transformation pass to remove equivalent rules.
Definition at line 36 of file MinimiseProgram.h.
|
static |
Definition at line 190 of file MinimiseProgram.cpp.
|
inlineoverridevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 52 of file MinimiseProgram.h.
|
staticprivate |
Definition at line 53 of file MinimiseProgram.cpp.
|
inlineoverridevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 44 of file MinimiseProgram.h.
|
staticprivate |
– Bijective Equivalence Helper Methods –
Definition at line 147 of file MinimiseProgram.cpp.
|
staticprivate |
|
staticprivate |
– Sub-Transformations –
Reduces locally-redundant clauses. A clause is locally-redundant if there is another clause within the same relation that computes the same set of tuples.
Definition at line 243 of file MinimiseProgram.cpp.
References souffle::ast::getClauses(), and rel().
|
staticprivate |
Removes redundant singleton relations.
Singleton relations are relations with a single clause. A singleton relation is redundant if there exists another singleton relation that computes the same set of tuples.
Definition at line 286 of file MinimiseProgram.cpp.
References souffle::ast::getClauses(), and rel().
|
staticprivate |
Remove clauses that are only satisfied if they are already satisfied.
Definition at line 369 of file MinimiseProgram.cpp.
|
overrideprivatevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 434 of file MinimiseProgram.cpp.