YES TPA v.1.0 Result: TRS is terminating Default interpretations for symbols are not printed. For polynomial interpretations and semantic labelling over N\{0,1} defaults are 2 for constants, identity for unary symbols and x+y-2 for binary symbols. For semantic labelling over {0,1} (booleans) defaults are 0 for constants, identity for unary symbols and disjunction for binary symbols. [1] TRS loaded from input file: (1) minus(0,Y) -> 0 (2) minus(s(X),s(Y)) -> minus(X,Y) (3) geq(X,0) -> true (4) geq(0,s(Y)) -> false (5) geq(s(X),s(Y)) -> geq(X,Y) (6) div(0,s(Y)) -> 0 (7) div(s(X),s(Y)) -> if`1(geq(X,Y),if`2(s(div(minus(X,Y),s(Y))),0)) (8) if`1(true,if`2(X,Y)) -> X (9) if`1(false,if`2(X,Y)) -> Y [2] Apply the Dependency Pair transformation resulting in the following dependency pairs: and 3 SCCs in the dependency graph. Proofs for those SCCs follow. [2a-1] Consider the following SCC obtained from analysis of dependency graph: (1) minus(0,Y) ->= 0 (2) minus(s(X),s(Y)) ->= minus(X,Y) (3) geq(X,0) ->= true (4) geq(0,s(Y)) ->= false (5) geq(s(X),s(Y)) ->= geq(X,Y) (6) div(0,s(Y)) ->= 0 (7) div(s(X),s(Y)) ->= if`1(geq(X,Y),if`2(s(div(minus(X,Y),s(Y))),0)) (8) if`1(true,if`2(X,Y)) ->= X (9) if`1(false,if`2(X,Y)) ->= Y (DP5) Div(s(X),s(Y)) -> Div(minus(X,Y),s(Y)) [2a-2] Use following polynomial interpretation: [minus(x,y)] = x [s(x)] = x + 1 [if`1(x,y)] = y rest default Remove rules with left hand side strictly bigger than right hand side: (2), (4)-(6), (DP5) [2a-3] Since there are no remaining strict rules, relative termination is proved! [2b-1] Consider the following SCC obtained from analysis of dependency graph: (1) minus(0,Y) ->= 0 (2) minus(s(X),s(Y)) ->= minus(X,Y) (3) geq(X,0) ->= true (4) geq(0,s(Y)) ->= false (5) geq(s(X),s(Y)) ->= geq(X,Y) (6) div(0,s(Y)) ->= 0 (7) div(s(X),s(Y)) ->= if`1(geq(X,Y),if`2(s(div(minus(X,Y),s(Y))),0)) (8) if`1(true,if`2(X,Y)) ->= X (9) if`1(false,if`2(X,Y)) ->= Y (DP2) Geq(s(X),s(Y)) -> Geq(X,Y) [2b-2] Use following polynomial interpretation: [minus(x,y)] = x [s(x)] = x + 1 [if`1(x,y)] = y rest default Remove rules with left hand side strictly bigger than right hand side: (2), (4)-(6), (DP2) [2b-3] Since there are no remaining strict rules, relative termination is proved! [2c-1] Consider the following SCC obtained from analysis of dependency graph: (1) minus(0,Y) ->= 0 (2) minus(s(X),s(Y)) ->= minus(X,Y) (3) geq(X,0) ->= true (4) geq(0,s(Y)) ->= false (5) geq(s(X),s(Y)) ->= geq(X,Y) (6) div(0,s(Y)) ->= 0 (7) div(s(X),s(Y)) ->= if`1(geq(X,Y),if`2(s(div(minus(X,Y),s(Y))),0)) (8) if`1(true,if`2(X,Y)) ->= X (9) if`1(false,if`2(X,Y)) ->= Y (DP1) Minus(s(X),s(Y)) -> Minus(X,Y) [2c-2] Use following polynomial interpretation: [minus(x,y)] = x [s(x)] = x + 1 [if`1(x,y)] = y rest default Remove rules with left hand side strictly bigger than right hand side: (2), (4)-(6), (DP1) [2c-3] Since there are no remaining strict rules, relative termination is proved! ../tpdb/TRS/nontermin/CSR/Ex49_GM04.trs, 0.01, Y Couldn't open file <60>: 60: No such file or directory