This file collects on-going issues and enhancements for the tct-trs
module.
Further problems and improvements about the overall behaviour are discussed in
the tct-core
module.
The successful application of the bounds
processor depends on the order of
the rules.
Following example is solved by tct2 but not by tct3:
(VAR x y )
(RULES
f(c(s(x),y)) -> f(c(x,s(y)))
g(c(x,s(y))) -> g(c(s(x),y))
g(s(f(x))) -> g(f(x))
)
Note that the internal representation of rules differ.
When we rename s
to a
then (the ruleList
) representation of the tools
coincide, and the problem is not solved by any of the tools.
(VAR x y )
(RULES
f(c(a(x),y)) -> f(c(x,a(y)))
g(a(f(x))) -> g(f(x))
g(c(x,a(y))) -> g(c(a(x),y))
)
It seems that the application depends on which order rules are processed. It has to be clarified if we can generalize the proof search such that it is order independent.
Nonetheless, so far all applications in the certified strategy on the tpdb have been certified successfully.
Current implementation is based on tcap/icap
. TcT2 uses icap*
. AY and CS
are investigating other alternatives.
The usableRules
processor is currently more restrictive than CeTA, which allows
- usable rules for non-
DP
problems - uses
icap
andusableSymbols
(which are incomparable) for estimating usable rules.
Port pop*
form TcT2
.
Port uncurry
form TcT2
.
The AProVE
strategy heavily relies on narrowing
which seems to be
particularly beneficial in some translated examples where constraints have been
encoded. MA has implemented narrowing/inlining
, which is already used for
decreasingLoops
processor. Narrowing/inlining
can be defined as a processor
for innermost runtime.
MA used a dedicate Strategy for RaML examples. The termcomp strategy up to 2016
does not make use of this strategy. For termcomp 2017 GM implemented a simple greedy
strategy.
Besides pop*
everything that is used in the RaML strategy is implemented
The strategy should be ported and tested.
Preliminary tests show practicability of GUBS
for polynomial interpretations.
In particular the certification strategy could benefit from it. GUBS
allows
to easily implement heuristics without breaking soundness. For example, one
simple heuristics is to fix the interpretation for constructor symbols. Though
incomplete, in this case GUBS
can simplify the problems significantly. Note
that GUBS
provides means for decomposition even when the problem is not a DP
problem. It could be interesting to explore dedicated strategies for
simplifying, decomposing polynomial interpretations.
Derivational complexity is used per default. Should probably be Runtime Innermost.
Building all packages is getting instable due to package conflicts. Update dependencies.