| 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.
 1.8.17
 1.8.17