/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) rev(nil) => nil (fun rev>nil) >>True Checking (2) rev(cons(Y,X)) => cons(rev1(Y,X),rev2(Y,X)) (fun rev>cons) (fun rev>rev1) (meta Y)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in Y] (meta X)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in X] (fun rev>rev2) (meta Y)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in Y] (meta X)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in X] >>True Checking (3) rev1(0,nil) => 0 (fun rev1>0) >>True Checking (4) rev1(s(U),nil) => s(U) (fun rev1>s) (meta U)[is acc in s(U),nil] [is positive in s(U)] [is acc in U] >>True Checking (5) rev1(W,cons(P,V)) => rev1(P,V) (fun rev1=rev1) subterm comparison of args w. LR LR >>False Try again using status RL Checking (1) rev(nil) => nil (fun rev>nil) >>True Checking (2) rev(cons(Y,X)) => cons(rev1(Y,X),rev2(Y,X)) (fun rev>cons) (fun rev>rev1) (meta Y)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in Y] (meta X)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in X] (fun rev>rev2) (meta Y)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in Y] (meta X)[is acc in cons(Y,X)] [is positive in cons(Y,X)] [is acc in X] >>True Checking (3) rev1(0,nil) => 0 (fun rev1>0) >>True Checking (4) rev1(s(U),nil) => s(U) (fun rev1>s) (meta U)[is acc in s(U),nil] [is positive in s(U)] [is acc in U] >>True Checking (5) rev1(W,cons(P,V)) => rev1(P,V) (fun rev1=rev1) subterm comparison of args w. RL RL (meta P)[is acc in W,cons(P,V)] [is positive in cons(P,V)] [is acc in P] (meta V)[is acc in W,cons(P,V)] [is positive in cons(P,V)] [is acc in V] >>True Checking (6) rev2(X1,nil) => nil (fun rev2>nil) >>True Checking (7) rev2(U1,cons(V1,Y1)) => rev(cons(U1,rev2(V1,Y1))) (fun rev2>rev) (fun rev2>cons) (meta U1)[is acc in U1,cons(V1,Y1)] [is acc in U1] (fun rev2=rev2) subterm comparison of args w. RL RL (meta V1)[is acc in U1,cons(V1,Y1)] [is positive in cons(V1,Y1)] [is acc in V1] (meta Y1)[is acc in U1,cons(V1,Y1)] [is positive in cons(V1,Y1)] [is acc in Y1] >>True Checking (8) map(I1,nil) => nil (fun map>nil) >>True Checking (9) map(J1,cons(X2,Y2)) => cons(J1[X2],map(J1,Y2)) (fun map>cons) (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] (fun map=map) subterm comparison of args w. RL RL (meta J1)[is acc in J1,cons(X2,Y2)] [is acc in J1] (meta Y2)[is acc in J1,cons(X2,Y2)] [is positive in cons(X2,Y2)] [is acc in Y2] >>True Checking (10) filter(G2,nil) => nil (fun filter>nil) >>True Checking (11) filter(H2,cons(W2,P2)) => filter2(H2[W2],H2,W2,P2) (fun filter=filter2) subterm comparison of args w. Arg [1,2] Arg [2,4,3,1] (meta H2)[is acc in H2,cons(W2,P2)] [is acc in H2] (meta W2)[is acc in H2,cons(W2,P2)] [is positive in cons(W2,P2)] [is acc in W2] (meta H2)[is acc in H2,cons(W2,P2)] [is acc in H2] (meta W2)[is acc in H2,cons(W2,P2)] [is positive in cons(W2,P2)] [is acc in W2] (meta P2)[is acc in H2,cons(W2,P2)] [is positive in cons(W2,P2)] [is acc in P2] >>True Checking (12) filter2(true,F3,Y3,U3) => cons(Y3,filter(F3,U3)) (fun filter2>cons) (meta Y3)[is acc in true,F3,Y3,U3] [is positive in true] [is acc in Y3] (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta F3)[is acc in true,F3,Y3,U3] [is positive in true] [is acc in F3] (meta U3)[is acc in true,F3,Y3,U3] [is positive in true] [is acc in U3] >>True Checking (13) filter2(false,H3,W3,P3) => filter(H3,P3) (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta H3)[is acc in false,H3,W3,P3] [is positive in false] [is acc in H3] (meta P3)[is acc in false,H3,W3,P3] [is positive in false] [is acc in P3] >>True #SN! ******** Signature ******** 0 : c cons : (c,d) -> d false : b filter : ((c -> b),d) -> d filter2 : (b,(c -> b),c,d) -> d map : ((c -> c),d) -> d nil : d rev : d -> d rev1 : (c,d) -> c rev2 : (c,d) -> d s : a -> c true : b ******** Computation Rules ******** (1) rev(nil) => nil (2) rev(cons(Y,X)) => cons(rev1(Y,X),rev2(Y,X)) (3) rev1(0,nil) => 0 (4) rev1(s(U),nil) => s(U) (5) rev1(W,cons(P,V)) => rev1(P,V) (6) rev2(X1,nil) => nil (7) rev2(U1,cons(V1,Y1)) => rev(cons(U1,rev2(V1,Y1))) (8) map(I1,nil) => nil (9) map(J1,cons(X2,Y2)) => cons(J1[X2],map(J1,Y2)) (10) filter(G2,nil) => nil (11) filter(H2,cons(W2,P2)) => filter2(H2[W2],H2,W2,P2) (12) filter2(true,F3,Y3,U3) => cons(Y3,filter(F3,U3)) (13) filter2(false,H3,W3,P3) => filter(H3,P3) YES