/export/starexec/sandbox/solver/bin/starexec_run_hrs /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES ******** General Schema criterion ******** Found constructors: xbminus, xbplus, xbtimes, 0, 1, cons, constant, false, nil, 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) map(F1,nil) => nil (fun map>nil) >>True Checking (7) map(Z1,cons(U1,V1)) => cons(Z1[U1],map(Z1,V1)) (fun map>cons) (meta Z1)[is acc in Z1,cons(U1,V1)] [is acc in Z1] (meta U1)[is acc in Z1,cons(U1,V1)] [is positive in cons(U1,V1)] [is acc in U1] (fun map=map) subterm comparison of args w. LR LR (meta Z1)[is acc in Z1,cons(U1,V1)] [is acc in Z1] (meta V1)[is acc in Z1,cons(U1,V1)] [is positive in cons(U1,V1)] [is acc in V1] >>True Checking (8) filter(I1,nil) => nil (fun filter>nil) >>True Checking (9) filter(J1,cons(X2,Y2)) => filter2(J1[X2],J1,X2,Y2) (fun filter=filter2) subterm comparison of args w. Arg [1,2] Arg [2,4,3,1] (meta J1)[is acc in J1,cons(X2,Y2)] [is acc in J1] (meta X2)[is acc in J1,cons(X2,Y2)] [is positive in cons(X2,Y2)] [is acc in X2] (meta J1)[is acc in J1,cons(X2,Y2)] [is acc in J1] (meta X2)[is acc in J1,cons(X2,Y2)] [is positive in cons(X2,Y2)] [is acc in X2] (meta Y2)[is acc in J1,cons(X2,Y2)] [is positive in cons(X2,Y2)] [is acc in Y2] >>True Checking (10) filter2(true,G2,V2,W2) => cons(V2,filter(G2,W2)) (fun filter2>cons) (meta V2)[is acc in true,G2,V2,W2] [is positive in true] [is acc in V2] (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta G2)[is acc in true,G2,V2,W2] [is positive in true] [is acc in G2] (meta W2)[is acc in true,G2,V2,W2] [is positive in true] [is acc in W2] >>True Checking (11) filter2(false,J2,X3,Y3) => filter(J2,Y3) (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta J2)[is acc in false,J2,X3,Y3] [is positive in false] [is acc in J2] (meta Y3)[is acc in false,J2,X3,Y3] [is positive in false] [is acc in Y3] >>True #SN! ******** Signature ******** xbminus : (a,a) -> a xbplus : (a,a) -> a xbtimes : (a,a) -> a 0 : a 1 : a d : a -> a cons : (c,d) -> d constant : a false : b filter : ((c -> b),d) -> d filter2 : (b,(c -> b),c,d) -> d map : ((c -> c),d) -> d nil : d 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) map(F1,nil) => nil (7) map(Z1,cons(U1,V1)) => cons(Z1[U1],map(Z1,V1)) (8) filter(I1,nil) => nil (9) filter(J1,cons(X2,Y2)) => filter2(J1[X2],J1,X2,Y2) (10) filter2(true,G2,V2,W2) => cons(V2,filter(G2,W2)) (11) filter2(false,J2,X3,Y3) => filter(J2,Y3) YES