We consider the system AotoYamada_05__023. Alphabet: 0 : [] --> a id : [] --> a -> a plus : [a] --> a -> a s : [a] --> a Rules: id x => x plus(0) => id plus(s(x)) y => s(plus(x) y) This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): id X >? X plus(0) >? id plus(s(X)) Y >? s(plus(X) Y) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[id]] = _|_ [[s(x_1)]] = x_1 We choose Lex = {} and Mul = {0, @_{o -> o}, plus}, and the following precedence: 0 > @_{o -> o} > plus Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: @_{o -> o}(_|_, X) > X plus(0) > _|_ @_{o -> o}(plus(X), Y) >= @_{o -> o}(plus(X), Y) With these choices, we have: 1] @_{o -> o}(_|_, X) > X because [2], by definition 2] @_{o -> o}*(_|_, X) >= X because [3], by (Select) 3] X >= X by (Meta) 4] plus(0) > _|_ because [5], by definition 5] plus*(0) >= _|_ by (Bot) 6] @_{o -> o}(plus(X), Y) >= @_{o -> o}(plus(X), Y) because @_{o -> o} in Mul, [7] and [9], by (Fun) 7] plus(X) >= plus(X) because plus in Mul and [8], by (Fun) 8] X >= X by (Meta) 9] Y >= Y by (Meta) We can thus remove the following rules: id X => X plus(0) => id 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(s(X), Y) >? s(plus(X, Y)) We use a recursive path ordering as defined in [Kop12, Chapter 5]. We choose Lex = {} and Mul = {plus, s}, and the following precedence: plus > s With these choices, we have: 1] plus(s(X), Y) > s(plus(X, Y)) because [2], by definition 2] plus*(s(X), Y) >= s(plus(X, Y)) because plus > s and [3], by (Copy) 3] plus*(s(X), Y) >= plus(X, Y) because plus in Mul, [4] and [7], by (Stat) 4] s(X) > X because [5], by definition 5] s*(X) >= X because [6], by (Select) 6] X >= X by (Meta) 7] Y >= Y by (Meta) We can thus remove the following rules: plus(s(X), Y) => s(plus(X, Y)) 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.