We consider universal computability of the LCSTRS with only rule scheme Calc: Signature: cons :: Int -> intlist -> intlist fact :: Int -> Int fact2 :: Int -> Int fold :: (Int -> Int -> Int) -> Int -> intlist -> Int genlist :: Int -> intlist nil :: intlist Rules: fact(n) -> 1 | n <= 0 fact(n) -> n * fact2(n - 1) | n > 0 fact2(n) -> fold([*], 1, genlist(n)) | n = n genlist(n) -> nil | n <= 0 genlist(n) -> cons(n, genlist(n - 1)) | n > 0 fold(f, y, nil) -> y | y = y fold(f, y, cons(x, l)) -> f(x, fold(f, y, l)) | y = y /\ x = x 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 UNION R_?, i, c), where: P1. (1) fact#(n) => fact2#(n - 1) | n > 0 (2) fact2#(n) => genlist#(n) | n = n (3) fact2#(n) => fold#([*], 1, genlist(n)) | n = n (4) genlist#(n) => genlist#(n - 1) | n > 0 (5) fold#(f, y, cons(x, l)) => fold#(f, y, l) | y = y /\ x = x ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, i, c). We compute a graph approximation with the following edges: 1: 2 3 2: 4 3: 5 4: 4 5: 5 There are 2 SCCs. Processor output: { D2 = (P2, R UNION R_?, i, c) ; D3 = (P3, R UNION R_?, i, c) }, where: P2. (1) genlist#(n) => genlist#(n - 1) | n > 0 P3. (1) fold#(f, y, cons(x, l)) => fold#(f, y, l) | y = y /\ x = x ***** We apply the Integer Function Processor on D2 = (P2, R UNION R_?, i, c). We use the following integer mapping: J(genlist#) = arg_1 We thus have: (1) n > 0 |= n > n - 1 (and n >= 0) All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D3 = (P3, R UNION R_?, i, c). We use the following projection function: nu(fold#) = 3 We thus have: (1) cons(x, l) |>| l All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }.