Portability | unportable |
---|---|
Stability | unstable |
Maintainer | Martin Avanzini <martin.avanzini@uibk.ac.at> |
Safe Haskell | Safe-Infered |
Tct.Method.DP.Simplification
Contents
Description
This module provides various fast transformations that simplify dependency pair problems.
- removeWeakSuffix :: TheTransformer RemoveWeakSuffix
- data RemoveWeakSuffixProof
- removeWeakSuffixProcessor :: Transformation RemoveWeakSuffix AnyProcessor
- data RemoveWeakSuffix
- removeHeads :: TheTransformer RemoveHead
- data RemoveHeadProof
- removeHeadProcessor :: Transformation RemoveHead AnyProcessor
- data RemoveHead
- simpDPRHS :: TheTransformer SimpRHS
- data SimpRHSProof
- simpDPRHSProcessor :: Transformation SimpRHS AnyProcessor
- data SimpRHS
- trivial :: TheTransformer Trivial
- data TrivialProof
- = TrivialProof { }
- | TrivialError DPError
- | TrivialFail
- trivialProcessor :: Transformation Trivial AnyProcessor
- data Trivial
- removeInapplicable :: TheTransformer RemoveInapplicable
- data RemoveInapplicableProof
- = RemoveInapplicableProof {
- riWDG :: DG
- riInitials :: [NodeId]
- riReachable :: [NodeId]
- riSig :: Signature
- riVars :: Variables
- | RemoveInapplicableError DPError
- | RemoveInapplicableFail
- = RemoveInapplicableProof {
- removeInapplicableProcessor :: Transformation RemoveInapplicable AnyProcessor
- data RemoveInapplicable
- simpPE :: TheTransformer (SimpPE AnyProcessor)
- simpPEOn :: ExpressionSelector -> TheTransformer (SimpPE AnyProcessor)
- withPEOn :: Processor p => InstanceOf p -> ExpressionSelector -> TheTransformer (SimpPE p)
- data SimpPEProof p
- = SimpPEProof { }
- | SimpPEPProof {
- skpDG :: DG
- skpSig :: Signature
- skpPProof :: PartialProof (ProofOf p)
- skpPProc :: InstanceOf p
- skpSelections :: [SimpPESelection]
- skpVars :: Variables
- | SimpPEErr DPError
- simpPEProcessor :: Transformation (SimpPE AnyProcessor) AnyProcessor
- data SimpPE p
Remove Weak Suffixes
removeWeakSuffix :: TheTransformer RemoveWeakSuffix
Removes trailing weak paths. A dependency pair is on a trailing weak path if it is from the weak components and all sucessors in the dependency graph are on trailing weak paths.
Only applicable on DP-problems as obtained by dependencyPairs
or dependencyTuples
. Also
not applicable when strictTrs prob = Trs.empty
.
Remove Tails
removeHeads :: TheTransformer RemoveHead
Removes unnecessary roots from the dependency graph.
data RemoveHeadProof
data RemoveHead
Simplify Dependency Pair Right-Hand-Sides
simpDPRHS :: TheTransformer SimpRHS
Simplifies right-hand sides of dependency pairs.
Removes r_i from right-hand side c_n(r_1,...,r_n)
if no instance of
r_i can be rewritten.
Only applicable on DP-problems as obtained by dependencyPairs
or dependencyTuples
. Also
not applicable when strictTrs prob = Trs.empty
.
data SimpRHSProof
data SimpRHS
Instances
Trivial DP Problems
trivial :: TheTransformer Trivial
Checks whether the DP problem is trivial, i.e., does not contain any cycles.
Only applicable on DP-problems as obtained by dependencyPairs
or dependencyTuples
. Also
not applicable when strictTrs prob = Trs.empty
.
data TrivialProof
Constructors
TrivialProof | |
Fields
| |
TrivialError DPError | |
TrivialFail |
data Trivial
Instances
Removing of InapplicableRules
removeInapplicable :: TheTransformer RemoveInapplicable
Removes inapplicable rules in DP deriviations.
Currently we check whether the left-hand side is non-basic, and there exists no incoming edge except from the same rule.
Constructors
RemoveInapplicableProof | |
Fields
| |
RemoveInapplicableError DPError | |
RemoveInapplicableFail |
data RemoveInapplicable
Knowledge Propagation
simpPE :: TheTransformer (SimpPE AnyProcessor)
Moves a strict dependency into the weak component if all predecessors in the dependency graph are strict and there is no edge from the rule to itself.
withPEOn :: Processor p => InstanceOf p -> ExpressionSelector -> TheTransformer (SimpPE p)
data SimpPEProof p
Constructors
SimpPEProof | |
SimpPEPProof | |
Fields
| |
SimpPEErr DPError |
data SimpPE p
Instances
Processor p => Transformer (SimpPE p) | |
Processor p => TransformationProof (SimpPE p) |