/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: 0, cons, false, nil, s, true Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>Regared as equal: filter2, filter Checking (1) minus(X,0) => X (meta X)[is acc in X,0] [is acc in X] >>True Checking (2) minus(s(Y),s(U)) => minus(Y,U) (fun minus=minus) subterm comparison of args w. LR LR (meta Y)[is acc in s(Y),s(U)] [is positive in s(Y)] [is acc in Y] (meta U)[is acc in s(Y),s(U)] [is positive in s(Y)] [is positive in s(U)] [is acc in U] >>True Checking (3) f(0) => s(0) (fun f>s) (fun f>0) >>True Checking (4) f(s(V)) => minus(s(V),g(f(V))) (fun f>minus) (fun f>s) (meta V)[is acc in s(V)] [is positive in s(V)] [is acc in V] (fun f>g) (fun f=f) subterm comparison of args w. LR LR (meta V)[is acc in s(V)] [is positive in s(V)] [is acc in V] >>True Checking (5) g(0) => 0 (fun g>0) >>True Checking (6) g(s(W)) => minus(s(W),f(g(W))) (fun g>minus) (fun g>s) (meta W)[is acc in s(W)] [is positive in s(W)] [is acc in W] (fun g>f) (fun g=g) subterm comparison of args w. LR LR (meta W)[is acc in s(W)] [is positive in s(W)] [is acc in W] >>True Checking (7) map(J,nil) => nil (fun map>nil) >>True Checking (8) map(F1,cons(Y1,U1)) => cons(F1[Y1],map(F1,U1)) (fun map>cons) (meta F1)[is acc in F1,cons(Y1,U1)] [is acc in F1] (meta Y1)[is acc in F1,cons(Y1,U1)] [is positive in cons(Y1,U1)] [is acc in Y1] (fun map=map) subterm comparison of args w. LR LR (meta F1)[is acc in F1,cons(Y1,U1)] [is acc in F1] (meta U1)[is acc in F1,cons(Y1,U1)] [is positive in cons(Y1,U1)] [is acc in U1] >>True Checking (9) filter(H1,nil) => nil (fun filter>nil) >>True Checking (10) filter(I1,cons(P1,X2)) => filter2(I1[P1],I1,P1,X2) (fun filter=filter2) subterm comparison of args w. Arg [1,2] Arg [2,4,3,1] (meta I1)[is acc in I1,cons(P1,X2)] [is acc in I1] (meta P1)[is acc in I1,cons(P1,X2)] [is positive in cons(P1,X2)] [is acc in P1] (meta I1)[is acc in I1,cons(P1,X2)] [is acc in I1] (meta P1)[is acc in I1,cons(P1,X2)] [is positive in cons(P1,X2)] [is acc in P1] (meta X2)[is acc in I1,cons(P1,X2)] [is positive in cons(P1,X2)] [is acc in X2] >>True Checking (11) filter2(true,Z2,U2,V2) => cons(U2,filter(Z2,V2)) (fun filter2>cons) (meta U2)[is acc in true,Z2,U2,V2] [is positive in true] [is acc in U2] (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta Z2)[is acc in true,Z2,U2,V2] [is positive in true] [is acc in Z2] (meta V2)[is acc in true,Z2,U2,V2] [is positive in true] [is acc in V2] >>True Checking (12) filter2(false,I2,P2,X3) => filter(I2,X3) (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta I2)[is acc in false,I2,P2,X3] [is positive in false] [is acc in I2] (meta X3)[is acc in false,I2,P2,X3] [is positive in false] [is acc in X3] >>True #SN! ******** Signature ******** 0 : a cons : (c,d) -> d f : a -> a false : b filter : ((c -> b),d) -> d filter2 : (b,(c -> b),c,d) -> d g : a -> a map : ((c -> c),d) -> d minus : (a,a) -> a nil : d s : a -> a true : b ******** Computation Rules ******** (1) minus(X,0) => X (2) minus(s(Y),s(U)) => minus(Y,U) (3) f(0) => s(0) (4) f(s(V)) => minus(s(V),g(f(V))) (5) g(0) => 0 (6) g(s(W)) => minus(s(W),f(g(W))) (7) map(J,nil) => nil (8) map(F1,cons(Y1,U1)) => cons(F1[Y1],map(F1,U1)) (9) filter(H1,nil) => nil (10) filter(I1,cons(P1,X2)) => filter2(I1[P1],I1,P1,X2) (11) filter2(true,Z2,U2,V2) => cons(U2,filter(Z2,V2)) (12) filter2(false,I2,P2,X3) => filter(I2,X3) YES