/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES ******** General Schema criterion ******** Found constructors: xbminus, xbplus, xbtimes, 0, 1, 2, cons, constant, div, false, ln, minus, nil, pow, t, true Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>Regared as equal: filter2, filter Checking (1) d(t) => 1 (fun d>1) >>True Checking (2) d(constant) => 0 (fun d>0) >>True Checking (3) d(xbplus(X,Y)) => xbplus(d(X),d(Y)) (fun d>xbplus) (fun d=d) subterm comparison of args w. LR LR (meta X)[is acc in xbplus(X,Y)] [is positive in xbplus(X,Y)] [is acc in X] (fun d=d) subterm comparison of args w. LR LR (meta Y)[is acc in xbplus(X,Y)] [is positive in xbplus(X,Y)] [is acc in Y] >>True Checking (4) d(xbtimes(U,V)) => xbplus(xbtimes(V,d(U)),xbtimes(U,d(V))) (fun d>xbplus) (fun d>xbtimes) (meta V)[is acc in xbtimes(U,V)] [is positive in xbtimes(U,V)] [is acc in V] (fun d=d) subterm comparison of args w. LR LR (meta U)[is acc in xbtimes(U,V)] [is positive in xbtimes(U,V)] [is acc in U] (fun d>xbtimes) (meta U)[is acc in xbtimes(U,V)] [is positive in xbtimes(U,V)] [is acc in U] (fun d=d) subterm comparison of args w. LR LR (meta V)[is acc in xbtimes(U,V)] [is positive in xbtimes(U,V)] [is acc in V] >>True Checking (5) d(xbminus(W,P)) => xbminus(d(W),d(P)) (fun d>xbminus) (fun d=d) subterm comparison of args w. LR LR (meta W)[is acc in xbminus(W,P)] [is positive in xbminus(W,P)] [is acc in W] (fun d=d) subterm comparison of args w. LR LR (meta P)[is acc in xbminus(W,P)] [is positive in xbminus(W,P)] [is acc in P] >>True Checking (6) d(minus(X1)) => minus(d(X1)) (fun d>minus) (fun d=d) subterm comparison of args w. LR LR (meta X1)[is acc in minus(X1)] [is positive in minus(X1)] [is acc in X1] >>True Checking (7) d(div(Y1,U1)) => xbminus(div(d(Y1),U1),div(xbtimes(Y1,d(U1)),pow(U1,2))) (fun d>xbminus) (fun d>div) (fun d=d) subterm comparison of args w. LR LR (meta Y1)[is acc in div(Y1,U1)] [is positive in div(Y1,U1)] [is acc in Y1] (meta U1)[is acc in div(Y1,U1)] [is positive in div(Y1,U1)] [is acc in U1] (fun d>div) (fun d>xbtimes) (meta Y1)[is acc in div(Y1,U1)] [is positive in div(Y1,U1)] [is acc in Y1] (fun d=d) subterm comparison of args w. LR LR (meta U1)[is acc in div(Y1,U1)] [is positive in div(Y1,U1)] [is acc in U1] (fun d>pow) (meta U1)[is acc in div(Y1,U1)] [is positive in div(Y1,U1)] [is acc in U1] (fun d>2) >>True Checking (8) d(ln(V1)) => div(d(V1),V1) (fun d>div) (fun d=d) subterm comparison of args w. LR LR (meta V1)[is acc in ln(V1)] [is positive in ln(V1)] [is acc in V1] (meta V1)[is acc in ln(V1)] [is positive in ln(V1)] [is acc in V1] >>True Checking (9) d(pow(W1,P1)) => xbplus(xbtimes(xbtimes(P1,pow(W1,xbminus(P1,1))),d(W1)),xbtimes(xbtimes(pow(W1,P1),ln(W1)),d(P1))) (fun d>xbplus) (fun d>xbtimes) (fun d>xbtimes) (meta P1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in P1] (fun d>pow) (meta W1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in W1] (fun d>xbminus) (meta P1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in P1] (fun d>1) (fun d=d) subterm comparison of args w. LR LR (meta W1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in W1] (fun d>xbtimes) (fun d>xbtimes) (fun d>pow) (meta W1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in W1] (meta P1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in P1] (fun d>ln) (meta W1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in W1] (fun d=d) subterm comparison of args w. LR LR (meta P1)[is acc in pow(W1,P1)] [is positive in pow(W1,P1)] [is acc in P1] >>True Checking (10) map(F2,nil) => nil (fun map>nil) >>True Checking (11) map(Z2,cons(U2,V2)) => cons(Z2[U2],map(Z2,V2)) (fun map>cons) (meta Z2)[is acc in Z2,cons(U2,V2)] [is acc in Z2] (meta U2)[is acc in Z2,cons(U2,V2)] [is positive in cons(U2,V2)] [is acc in U2] (fun map=map) subterm comparison of args w. LR LR (meta Z2)[is acc in Z2,cons(U2,V2)] [is acc in Z2] (meta V2)[is acc in Z2,cons(U2,V2)] [is positive in cons(U2,V2)] [is acc in V2] >>True Checking (12) filter(I2,nil) => nil (fun filter>nil) >>True Checking (13) filter(J2,cons(X3,Y3)) => filter2(J2[X3],J2,X3,Y3) (fun filter=filter2) subterm comparison of args w. Arg [1,2] Arg [2,4,3,1] (meta J2)[is acc in J2,cons(X3,Y3)] [is acc in J2] (meta X3)[is acc in J2,cons(X3,Y3)] [is positive in cons(X3,Y3)] [is acc in X3] (meta J2)[is acc in J2,cons(X3,Y3)] [is acc in J2] (meta X3)[is acc in J2,cons(X3,Y3)] [is positive in cons(X3,Y3)] [is acc in X3] (meta Y3)[is acc in J2,cons(X3,Y3)] [is positive in cons(X3,Y3)] [is acc in Y3] >>True Checking (14) filter2(true,G3,V3,W3) => cons(V3,filter(G3,W3)) (fun filter2>cons) (meta V3)[is acc in true,G3,V3,W3] [is positive in true] [is acc in V3] (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta G3)[is acc in true,G3,V3,W3] [is positive in true] [is acc in G3] (meta W3)[is acc in true,G3,V3,W3] [is positive in true] [is acc in W3] >>True Checking (15) filter2(false,J3,X4,Y4) => filter(J3,Y4) (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta J3)[is acc in false,J3,X4,Y4] [is positive in false] [is acc in J3] (meta Y4)[is acc in false,J3,X4,Y4] [is positive in false] [is acc in Y4] >>True #SN! ******** Signature ******** xbminus : (a,a) -> a xbplus : (a,a) -> a xbtimes : (a,a) -> a 0 : a 1 : a 2 : a d : a -> a cons : (c,d) -> d constant : a div : (a,a) -> a false : b filter : ((c -> b),d) -> d filter2 : (b,(c -> b),c,d) -> d ln : a -> a map : ((c -> c),d) -> d minus : a -> a nil : d pow : (a,a) -> a t : a true : b ******** Computation Rules ******** (1) d(t) => 1 (2) d(constant) => 0 (3) d(xbplus(X,Y)) => xbplus(d(X),d(Y)) (4) d(xbtimes(U,V)) => xbplus(xbtimes(V,d(U)),xbtimes(U,d(V))) (5) d(xbminus(W,P)) => xbminus(d(W),d(P)) (6) d(minus(X1)) => minus(d(X1)) (7) d(div(Y1,U1)) => xbminus(div(d(Y1),U1),div(xbtimes(Y1,d(U1)),pow(U1,2))) (8) d(ln(V1)) => div(d(V1),V1) (9) d(pow(W1,P1)) => xbplus(xbtimes(xbtimes(P1,pow(W1,xbminus(P1,1))),d(W1)),xbtimes(xbtimes(pow(W1,P1),ln(W1)),d(P1))) (10) map(F2,nil) => nil (11) map(Z2,cons(U2,V2)) => cons(Z2[U2],map(Z2,V2)) (12) filter(I2,nil) => nil (13) filter(J2,cons(X3,Y3)) => filter2(J2[X3],J2,X3,Y3) (14) filter2(true,G3,V3,W3) => cons(V3,filter(G3,W3)) (15) filter2(false,J3,X4,Y4) => filter(J3,Y4) YES