We consider the system AotoYamada_05__005. Alphabet: 0 : [] --> a add : [] --> a -> a -> a curry : [a -> a -> a] --> a -> a -> a plus : [] --> a -> a -> a s : [a] --> a Rules: plus 0 x => x plus s(x) y => s(plus x y) curry(f) x y => f x y add => curry(plus) This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). Symbol curry is an encoding for application that is only used in innocuous ways. We can simplify the program (without losing non-termination) by removing it. This gives: Alphabet: 0 : [] --> a add : [] --> a -> a -> a plus : [] --> a -> a -> a s : [a] --> a Rules: plus 0 X => X plus s(X) Y => s(plus X Y) add => plus We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): plus 0 X >? X plus s(X) Y >? s(plus X Y) add >? plus We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: 0 = 3 add = \y0y1.3 + 3y0 + 3y1 plus = \y0y1.3y0 + 3y1 s = \y0.3 + y0 Using this interpretation, the requirements translate to: [[plus 0 _x0]] = 12 + 4x0 > x0 = [[_x0]] [[plus s(_x0) _x1]] = 12 + 4x0 + 4x1 > 3 + 4x0 + 4x1 = [[s(plus _x0 _x1)]] [[add]] = \y0y1.3 + 3y0 + 3y1 > \y0y1.3y0 + 3y1 = [[plus]] We can thus remove the following rules: plus 0 X => X plus s(X) Y => s(plus X Y) add => plus All rules were succesfully removed. Thus, termination of the original system has been reduced to termination of the beta-rule, which is well-known to hold. +++ Citations +++ [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012.