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