We consider universal computability of the LCTRS with only rule scheme Calc: Signature: condLoop :: Bool -> Int -> Int -> Int -> Int condMod :: Bool -> Int -> Int -> Int -> Int halfExp :: Int -> Int -> Int -> Int pow :: Int -> Int -> Int sqBase :: Int -> Int -> Int -> Int Rules: pow(b, e) -> condLoop(e > 0, b, e, 1) | b = b /\ e = e condLoop(false, b, e, r) -> r | b = b /\ e = e /\ r = r condLoop(true, b, e, r) -> condMod(e % 2 = 1, b, e, r) | b = b /\ e = e /\ r = r condMod(false, b, e, r) -> sqBase(b, e, r) | b = b /\ e = e /\ r = r condMod(true, b, e, r) -> sqBase(b, e, r * b) | b = b /\ e = e /\ r = r sqBase(b, e, r) -> halfExp(b * b, e, r) | b = b /\ e = e /\ r = r halfExp(b, e, r) -> condLoop(e > 0, b, e / 2, r) | b = b /\ e = e /\ r = r 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) pow#(b, e) => condLoop#(e > 0, b, e, 1) | b = b /\ e = e (2) condLoop#(true, b, e, r) => condMod#(e % 2 = 1, b, e, r) | b = b /\ e = e /\ r = r (3) condMod#(false, b, e, r) => sqBase#(b, e, r) | b = b /\ e = e /\ r = r (4) condMod#(true, b, e, r) => sqBase#(b, e, r * b) | b = b /\ e = e /\ r = r (5) sqBase#(b, e, r) => halfExp#(b * b, e, r) | b = b /\ e = e /\ r = r (6) halfExp#(b, e, r) => condLoop#(e > 0, b, e / 2, r) | b = b /\ e = e /\ r = r ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, i, c). We compute a graph approximation with the following edges: 1: 2 2: 3 4 3: 5 4: 5 5: 6 6: 2 There is only one SCC, so all DPs not inside the SCC can be removed. Processor output: { D2 = (P2, R UNION R_?, i, c) }, where: P2. (1) condLoop#(true, b, e, r) => condMod#(e % 2 = 1, b, e, r) | b = b /\ e = e /\ r = r (2) condMod#(false, b, e, r) => sqBase#(b, e, r) | b = b /\ e = e /\ r = r (3) condMod#(true, b, e, r) => sqBase#(b, e, r * b) | b = b /\ e = e /\ r = r (4) sqBase#(b, e, r) => halfExp#(b * b, e, r) | b = b /\ e = e /\ r = r (5) halfExp#(b, e, r) => condLoop#(e > 0, b, e / 2, r) | b = b /\ e = e /\ r = r ***** We apply the Usable Rules Processor on D2 = (P2, R UNION R_?, i, c). We obtain 0 usable rules (out of 7 rules in the input problem). Processor output: { D3 = (P2, {}, i, c) }. ***** No progress could be made on DP problem D3 = (P2, {}, i, c).