We consider the system 447. Alphabet: a : [] --> A b : [] --> A f : [A] --> A g : [A] --> A h : [A] --> A Rules: f(X) => g(X) g(X) => h(X) a => b We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): f(X) >? g(X) g(X) >? h(X) a >? b We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[b]] = _|_ We choose Lex = {} and Mul = {a, f, g, h}, and the following precedence: a > f = g = h Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: f(X) >= g(X) g(X) >= h(X) a > _|_ With these choices, we have: 1] f(X) >= g(X) because f = g, f in Mul and [2], by (Fun) 2] X >= X by (Meta) 3] g(X) >= h(X) because g = h, g in Mul and [4], by (Fun) 4] X >= X by (Meta) 5] a > _|_ because [6], by definition 6] a* >= _|_ by (Bot) We can thus remove the following rules: a => b We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): f(X) >? g(X) g(X) >? h(X) We use a recursive path ordering as defined in [Kop12, Chapter 5]. We choose Lex = {} and Mul = {f, g, h}, and the following precedence: f > g = h With these choices, we have: 1] f(X) > g(X) because [2], by definition 2] f*(X) >= g(X) because f > g and [3], by (Copy) 3] f*(X) >= X because [4], by (Select) 4] X >= X by (Meta) 5] g(X) >= h(X) because g = h, g in Mul and [6], by (Fun) 6] X >= X by (Meta) We can thus remove the following rules: f(X) => g(X) We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): g(X) >? h(X) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[h(x_1)]] = x_1 We choose Lex = {} and Mul = {g}, and the following precedence: g Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: g(X) > X With these choices, we have: 1] g(X) > X because [2], by definition 2] g*(X) >= X because [3], by (Select) 3] X >= X by (Meta) We can thus remove the following rules: g(X) => h(X) 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.