/export/starexec/sandbox2/solver/bin/starexec_run_hrs /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE We split firstr-order part and higher-order part, and do modular checking by a general modularity. ******** FO SN check ******** Check SN using NaTT (Nagoya Termination Tool) Input TRS: 1: g(P) -> true() 2: pred(0()) -> 0() 3: pred(s(P1)) -> P1 4: _(X1,X2) -> X1 5: _(X1,X2) -> X2 Number of strict rules: 5 Direct POLO(bPol) ... removes: 4 1 3 5 2 s w: 2 * x1 + 1 _ w: 2 * x1 + 2 * x2 + 1 true w: 0 pred w: 2 * x1 + 7719 0 w: 1 g w: x1 + 1 Number of strict rules: 0 ... Input TRS: 1: g(P) -> true() 2: pred(0()) -> 0() 3: pred(s(P1)) -> P1 4: _(X1,X2) -> X1 5: _(X1,X2) -> X2 Number of strict rules: 5 Direct POLO(bPol) ... removes: 4 1 3 5 2 s w: 2 * x1 + 1 _ w: 2 * x1 + 2 * x2 + 1 true w: 0 pred w: 2 * x1 + 7719 0 w: 1 g w: x1 + 1 Number of strict rules: 0 >>YES ******** Signature ******** g2 : N -> B iszero : (N,N) -> B 0 : N rec : (((N,(N -> B),N) -> B),B,N) -> B s : N -> N h : (N,(N -> B),N) -> B false : B g : N -> B h2 : (N,(N -> B),N) -> B pred : N -> N geq : (N,N) -> B ******** Computation rules ******** (8) g2(X2) => iszero(X2,0) (1) rec(F,Z[0]) => Z (2) rec(G,H[s(W)]) => G[W,rec(G,H[W])] (4) h(X1,Z1,U1) => false (5) iszero(V1,W1) => rec(h,g(V1),W1) (9) h2(Y2,G2,V2) => G2[pred(V2)] (10) geq(W2,P2) => rec(h2,g2(W2),P2) ******** General Schema criterion ******** Found constructors: 0, false, s, true Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (1) rec(F,Z[0]) => Z (meta Z)[is acc in F,Z[0]] [is acc in Z[0]] >>False Try again using status RL Checking (1) rec(F,Z[0]) => Z (meta Z)[is acc in F,Z[0]] [is acc in Z[0]] >>False Try again using status Mul Checking (1) rec(F,Z[0]) => Z (meta Z)[is acc in F,Z[0]] [is acc in Z[0]] >>False Found constructors: 0, s, false, g, pred Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (8) g2(X2) => iszero(X2,0) (fun g2>iszero) (meta X2)[is acc in X2] [is acc in X2] (fun g2>0) >>True Checking (1) rec(F,Z[0]) => Z (meta Z)[is acc in F,Z[0]] [is acc in Z[0]] >>False Try again using status RL Checking (8) g2(X2) => iszero(X2,0) (fun g2>iszero) (meta X2)[is acc in X2] [is acc in X2] (fun g2>0) >>True Checking (1) rec(F,Z[0]) => Z (meta Z)[is acc in F,Z[0]] [is acc in Z[0]] >>False Try again using status Mul Checking (8) g2(X2) => iszero(X2,0) (fun g2>iszero) (meta X2)[is acc in X2] [is acc in X2] (fun g2>0) >>True Checking (1) rec(F,Z[0]) => Z (meta Z)[is acc in F,Z[0]] [is acc in Z[0]] >>False #No idea.. ******** Signature ******** 0 : N false : B g : N -> B g2 : N -> B geq : (N,N) -> B h : (N,(N -> B),N) -> B h2 : (N,(N -> B),N) -> B iszero : (N,N) -> B pred : N -> N rec : (((N,(N -> B),N) -> B),B,N) -> B s : N -> N true : B ******** Computation Rules ******** (1) rec(F,Z[0]) => Z (2) rec(G,H[s(W)]) => G[W,rec(G,H[W])] (3) g(P) => true (4) h(X1,Z1,U1) => false (5) iszero(V1,W1) => rec(h,g(V1),W1) (6) pred(0) => 0 (7) pred(s(P1)) => P1 (8) g2(X2) => iszero(X2,0) (9) h2(Y2,G2,V2) => G2[pred(V2)] (10) geq(W2,P2) => rec(h2,g2(W2),P2) MAYBE