The TRS could be proven non-terminating. The proof took 307 ms.
The following reduction sequence is a witness for non-termination:
f#(g(___X), ___Y) →* f#(g(___X), ___Y)
The following DP Processors were used
Problem 1 was processed with processor SubtermCriterion (0ms).
| Problem 2 was processed with processor BackwardInstantiation (2ms).
| | Problem 3 was processed with processor BackwardInstantiation (1ms).
| | | Problem 4 was processed with processor BackwardInstantiation (2ms).
| | | | Problem 5 remains open; application of the following processors failed [ForwardInstantiation (1ms), Propagation (1ms)].
Problem 1: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
f#(g(X), Y) | → | f#(X, f(g(X), Y)) | | f#(g(X), Y) | → | f#(g(X), Y) |
Rewrite Rules
f(g(X), Y) | → | f(X, f(g(X), Y)) |
Original Signature
Termination of terms over the following signature is verified: f, g
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
f#(g(X), Y) | → | f#(X, f(g(X), Y)) |
Problem 2: BackwardInstantiation
Dependency Pair Problem
Dependency Pairs
f#(g(X), Y) | → | f#(g(X), Y) |
Rewrite Rules
f(g(X), Y) | → | f(X, f(g(X), Y)) |
Original Signature
Termination of terms over the following signature is verified: f, g
Strategy
Instantiation
For all potential predecessors l → r of the rule f
#(g(
X),
Y) → f
#(g(
X),
Y) on dependency pair chains it holds that:
- f#(g(X), Y) matches r,
- all variables of f#(g(X), Y) are embedded in constructor contexts, i.e., each subterm of f#(g(X), Y), containing a variable is rooted by a constructor symbol.
Thus, f
#(g(
X),
Y) → f
#(g(
X),
Y) is replaced by instances determined through the above matching. These instances are:
f#(g(_X), _Y) → f#(g(_X), _Y) |
Problem 3: BackwardInstantiation
Dependency Pair Problem
Dependency Pairs
f#(g(_X), _Y) | → | f#(g(_X), _Y) |
Rewrite Rules
f(g(X), Y) | → | f(X, f(g(X), Y)) |
Original Signature
Termination of terms over the following signature is verified: f, g
Strategy
Instantiation
For all potential predecessors l → r of the rule f
#(g(
_X),
_Y) → f
#(g(
_X),
_Y) on dependency pair chains it holds that:
- f#(g(_X), _Y) matches r,
- all variables of f#(g(_X), _Y) are embedded in constructor contexts, i.e., each subterm of f#(g(_X), _Y), containing a variable is rooted by a constructor symbol.
Thus, f
#(g(
_X),
_Y) → f
#(g(
_X),
_Y) is replaced by instances determined through the above matching. These instances are:
f#(g(__X), __Y) → f#(g(__X), __Y) |
Problem 4: BackwardInstantiation
Dependency Pair Problem
Dependency Pairs
f#(g(__X), __Y) | → | f#(g(__X), __Y) |
Rewrite Rules
f(g(X), Y) | → | f(X, f(g(X), Y)) |
Original Signature
Termination of terms over the following signature is verified: f, g
Strategy
Instantiation
For all potential predecessors l → r of the rule f
#(g(
__X),
__Y) → f
#(g(
__X),
__Y) on dependency pair chains it holds that:
- f#(g(__X), __Y) matches r,
- all variables of f#(g(__X), __Y) are embedded in constructor contexts, i.e., each subterm of f#(g(__X), __Y), containing a variable is rooted by a constructor symbol.
Thus, f
#(g(
__X),
__Y) → f
#(g(
__X),
__Y) is replaced by instances determined through the above matching. These instances are:
f#(g(___X), ___Y) → f#(g(___X), ___Y) |