/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES 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: merge(nil(),nil(),X) -> X 2: merge(nil(),cons(Y,U),V) -> merge(U,nil(),cons(Y,V)) 3: merge(cons(W,P),X1,Y1) -> merge(X1,P,cons(W,Y1)) 4: _(X1,X2) -> X1 5: _(X1,X2) -> X2 Number of strict rules: 5 Direct POLO(bPol) ... removes: 4 1 3 5 2 merge w: 2 * x1 + 2 * x2 + x3 + 2282 _ w: 2 * x1 + 2 * x2 + 1 nil w: 1 cons w: x1 + x2 + 610 Number of strict rules: 0 ... Input TRS: 1: merge(nil(),nil(),X) -> X 2: merge(nil(),cons(Y,U),V) -> merge(U,nil(),cons(Y,V)) 3: merge(cons(W,P),X1,Y1) -> merge(X1,P,cons(W,Y1)) 4: _(X1,X2) -> X1 5: _(X1,X2) -> X2 Number of strict rules: 5 Direct POLO(bPol) ... removes: 4 1 3 5 2 merge w: 2 * x1 + 2 * x2 + x3 + 2282 _ w: 2 * x1 + 2 * x2 + 1 nil w: 1 cons w: x1 + x2 + 610 Number of strict rules: 0 >>YES ******** Signature ******** map : ((nat -> nat),list) -> list nil : list cons : (nat,list) -> list ******** Computation rules ******** (4) map(G1,nil) => nil (5) map(H1,cons(W1,P1)) => cons(H1[W1],map(H1,P1)) ******** General Schema criterion ******** Found constructors: cons, nil Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (1) merge(nil,nil,X) => X (meta X)[is acc in nil,nil,X] [is positive in nil] [is positive in nil] [is acc in X] >>True Checking (2) merge(nil,cons(Y,U),V) => merge(U,nil,cons(Y,V)) (fun merge=merge) subterm comparison of args w. LR LR >>False Try again using status RL Checking (1) merge(nil,nil,X) => X (meta X)[is acc in nil,nil,X] [is positive in nil] [is positive in nil] [is acc in X] >>True Checking (2) merge(nil,cons(Y,U),V) => merge(U,nil,cons(Y,V)) (fun merge=merge) subterm comparison of args w. RL RL >>False Try again using status Mul Checking (1) merge(nil,nil,X) => X (meta X)[is acc in nil,nil,X] [is positive in nil] [is positive in nil] [is acc in X] >>True Checking (2) merge(nil,cons(Y,U),V) => merge(U,nil,cons(Y,V)) (fun merge=merge) subterm comparison of args w. Mul Mul >>False Found constructors: nil, cons Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (4) map(G1,nil) => nil (fun map>nil) >>True Checking (5) map(H1,cons(W1,P1)) => cons(H1[W1],map(H1,P1)) (fun map>cons) (meta H1)[is acc in H1,cons(W1,P1)] [is acc in H1] (meta W1)[is acc in H1,cons(W1,P1)] [is positive in cons(W1,P1)] [is acc in W1] (fun map=map) subterm comparison of args w. LR LR (meta H1)[is acc in H1,cons(W1,P1)] [is acc in H1] (meta P1)[is acc in H1,cons(W1,P1)] [is positive in cons(W1,P1)] [is acc in P1] >>True #SN! ******** Signature ******** cons : (nat,list) -> list map : ((nat -> nat),list) -> list merge : (list,list,list) -> list nil : list ******** Computation Rules ******** (1) merge(nil,nil,X) => X (2) merge(nil,cons(Y,U),V) => merge(U,nil,cons(Y,V)) (3) merge(cons(W,P),X1,Y1) => merge(X1,P,cons(W,Y1)) (4) map(G1,nil) => nil (5) map(H1,cons(W1,P1)) => cons(H1[W1],map(H1,P1)) YES