0.00/0.00 NO 0.00/0.00 We consider the system theBenchmark. 0.00/0.00 0.00/0.00 Alphabet: 0.00/0.00 0.00/0.00 0 : [] --> b 0.00/0.00 1 : [] --> b 0.00/0.00 cons : [d * e] --> e 0.00/0.00 f : [b] --> a 0.00/0.00 false : [] --> c 0.00/0.00 filter : [d -> c * e] --> e 0.00/0.00 filter2 : [c * d -> c * d * e] --> e 0.00/0.00 map : [d -> d * e] --> e 0.00/0.00 nil : [] --> e 0.00/0.00 true : [] --> c 0.00/0.00 0.00/0.00 Rules: 0.00/0.00 0.00/0.00 f(0) => f(0) 0.00/0.00 0 => 1 0.00/0.00 map(g, nil) => nil 0.00/0.00 map(g, cons(x, y)) => cons(g x, map(g, y)) 0.00/0.00 filter(g, nil) => nil 0.00/0.00 filter(g, cons(x, y)) => filter2(g x, g, x, y) 0.00/0.00 filter2(true, g, x, y) => cons(x, filter(g, y)) 0.00/0.00 filter2(false, g, x, y) => filter(g, y) 0.00/0.00 0.00/0.00 This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). 0.00/0.00 0.00/0.00 It is easy to see that this system is non-terminating: 0.00/0.00 0.00/0.00 f(0) 0.00/0.00 => f(0) 0.00/0.00 0.00/0.00 That is, a term s reduces to a term t which instantiates s. 0.00/0.00 0.00/0.00 EOF