/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES ******** General Schema criterion ******** Found constructors: 0, cons, false, n, nil, s, true Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>Regared as equal: filter2, filter Checking (1) f(cons(nil,X)) => X (meta X)[is acc in cons(nil,X)] [is positive in cons(nil,X)] [is acc in X] >>True Checking (2) f(cons(f(cons(nil,Y)),U)) => copy(n,Y,U) (fun f>copy) (fun f>n) (meta Y)[is acc in cons(f(cons(nil,Y)),U)] [is positive in cons(f(cons(nil,Y)),U)] [is positive in f(cons(nil,Y))] [is positive in cons(nil,Y)] [is acc in Y] (meta U)[is acc in cons(f(cons(nil,Y)),U)] [is positive in cons(f(cons(nil,Y)),U)] [is acc in U] >>True Checking (3) copy(0,V,W) => f(W) (fun copy>f) (meta W)[is acc in 0,V,W] [is positive in 0] [is acc in W] >>True Checking (4) copy(s(P),X1,Y1) => copy(P,X1,cons(f(X1),Y1)) (fun copy=copy) subterm comparison of args w. LR LR (meta P)[is acc in s(P),X1,Y1] [is positive in s(P)] [is acc in P] (meta X1)[is acc in s(P),X1,Y1] [is positive in s(P)] [is acc in X1] (fun copy>cons) (fun copy>f) (meta X1)[is acc in s(P),X1,Y1] [is positive in s(P)] [is acc in X1] (meta Y1)[is acc in s(P),X1,Y1] [is positive in s(P)] [is acc in Y1] >>True Checking (5) map(G1,nil) => nil (fun map>nil) >>True Checking (6) 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 Checking (7) filter(F2,nil) => nil (fun filter>nil) >>True Checking (8) filter(Z2,cons(U2,V2)) => filter2(Z2[U2],Z2,U2,V2) (fun filter=filter2) subterm comparison of args w. Arg [1,2] Arg [2,4,3,1] (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] (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] (meta V2)[is acc in Z2,cons(U2,V2)] [is positive in cons(U2,V2)] [is acc in V2] >>True Checking (9) filter2(true,I2,P2,X3) => cons(P2,filter(I2,X3)) (fun filter2>cons) (meta P2)[is acc in true,I2,P2,X3] [is positive in true] [is acc in P2] (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta I2)[is acc in true,I2,P2,X3] [is positive in true] [is acc in I2] (meta X3)[is acc in true,I2,P2,X3] [is positive in true] [is acc in X3] >>True Checking (10) filter2(false,Z3,U3,V3) => filter(Z3,V3) (fun filter2=filter) subterm comparison of args w. Arg [2,4,3,1] Arg [1,2] (meta Z3)[is acc in false,Z3,U3,V3] [is positive in false] [is acc in Z3] (meta V3)[is acc in false,Z3,U3,V3] [is positive in false] [is acc in V3] >>True #SN! ******** Signature ******** 0 : a cons : (c,c) -> c copy : (a,c,c) -> c f : c -> c false : b filter : ((c -> b),c) -> c filter2 : (b,(c -> b),c,c) -> c map : ((c -> c),c) -> c n : a nil : c s : a -> a true : b ******** Computation Rules ******** (1) f(cons(nil,X)) => X (2) f(cons(f(cons(nil,Y)),U)) => copy(n,Y,U) (3) copy(0,V,W) => f(W) (4) copy(s(P),X1,Y1) => copy(P,X1,cons(f(X1),Y1)) (5) map(G1,nil) => nil (6) map(H1,cons(W1,P1)) => cons(H1[W1],map(H1,P1)) (7) filter(F2,nil) => nil (8) filter(Z2,cons(U2,V2)) => filter2(Z2[U2],Z2,U2,V2) (9) filter2(true,I2,P2,X3) => cons(P2,filter(I2,X3)) (10) filter2(false,Z3,U3,V3) => filter(Z3,V3) YES