We consider termination of the STRS with no additional rule schemes: Signature: 0 :: nat false :: bool h :: (nat -> bool) -> (nat -> nat) -> nat -> nat if :: bool -> nat -> nat -> nat s :: nat -> nat true :: bool Rules: if(true, X, Y) -> X if(false, X, Y) -> Y h(F, G, 0) -> 0 h(F, G, s(Y)) -> G(h(F, G, if(F(Y), Y, 0))) The system is accessible function passing by a sort ordering that equates all sorts. We start by computing the initial DP problem D1 = (P1, R, f, c), where: P1. (1) h#(F, G, s(Y)) => if#(F(Y), Y, 0) (2) h#(F, G, s(Y)) => h#(F, G, if(F(Y), Y, 0)) ***** We apply the Graph Processor on D1 = (P1, R, f, c). We compute a graph approximation with the following edges: 1: 2: 1 2 There is only one SCC, so all DPs not inside the SCC can be removed. Processor output: { D2 = (P2, R, f, c) }, where: P2. (1) h#(F, G, s(Y)) => h#(F, G, if(F(Y), Y, 0)) ***** We apply the Reduction Pair [with HORPO] Processor on D2 = (P2, R, f, c). Constrained HORPO yields: h#(F, G, s(Y)) (>) h#(F, G, if(F(Y), Y, 0)) if(true, X, Y) (>=) X if(false, X, Y) (>=) Y h(F, G, 0) (>=) 0 h(F, G, s(Y)) (>=) G(h(F, G, if(F(Y), Y, 0))) We do this using the following settings: * Disregarded arguments: h# 2 h 1 if 1 * Precedence and permutation: s { 1 } > if { 2 } _ 3 > 0 { } = false { } = h# { 3 } 1 = h { 2 } _ 3 = true { } * Well-founded theory orderings: [>]_{Bool} = {(true,false)} [>]_{Int} = {(x,y) | x < 1000 /\ x < y } All dependency pairs were removed. Processor output: { }.