We consider termination of the LCTRS with only rule scheme Calc: Signature: if :: Bool -> Int -> Int -> Int minus :: Int -> Int -> o minusNat :: Bool -> Int -> Int -> o round :: Int -> Int Rules: minus(x, y) -> minusNat(y >= 0 /\ x = y + 1, x, y) minusNat(true, x, y) -> minus(x, round(y)) round(x) -> if(x % 2 = 0, x, x + 1) if(true, u, v) -> u if(false, u, v) -> v 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, i, c), where: P1. (1) minus#(x, y) => minusNat#(y >= 0 /\ x = y + 1, x, y) (2) minusNat#(true, x, y) => round#(y) (3) minusNat#(true, x, y) => minus#(x, round(y)) (4) round#(x) => if#(x % 2 = 0, x, x + 1) ***** We apply the Graph Processor on D1 = (P1, R, i, c). We compute a graph approximation with the following edges: 1: 2 3 2: 4 3: 1 4: There is only one SCC, so all DPs not inside the SCC can be removed. Processor output: { D2 = (P2, R, i, c) }, where: P2. (1) minus#(x, y) => minusNat#(y >= 0 /\ x = y + 1, x, y) (2) minusNat#(true, x, y) => minus#(x, round(y)) ***** We apply the Theory Arguments Processor on D2 = (P2, R, i, c). We use the following theory arguments function: minus# : [] minusNat# : [1, 2, 3] Processor output: { D3 = (P3, R, i, c) ; D4 = (P4, R, i, c) }, where: P3. (1) minus#(x, y) => minusNat#(y >= 0 /\ x = y + 1, x, y) (2) minusNat#(true, x, y) => minus#(x, round(y)) | x = x /\ y = y P4. (1) minusNat#(true, x, y) => minus#(x, round(y)) ***** We apply the Usable Rules Processor on D3 = (P3, R, i, c). We obtain 3 usable rules (out of 5 rules in the input problem). Processor output: { D5 = (P3, R2, i, c) }, where: R2. (1) if(true, u, v) -> u (2) if(false, u, v) -> v (3) round(x) -> if(x % 2 = 0, x, x + 1) ***** We apply the Graph Processor on D4 = (P4, R, i, c). We compute a graph approximation with the following edges: 1: As there are no SCCs, this DP problem is removed. Processor output: { }. ***** No progress could be made on DP problem D5 = (P3, R2, i, c).