/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, nil, s Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (1) 0 + X => X (meta X)[is acc in 0,X] [is positive in 0] [is acc in X] >>True Checking (2) s(Y) + U => s(Y + U) (fun plus>s) (fun plus=plus) subterm comparison of args w. LR LR (meta Y)[is acc in s(Y),U] [is positive in s(Y)] [is acc in Y] (meta U)[is acc in s(Y),U] [is positive in s(Y)] [is acc in U] >>True Checking (3) 0 * V => 0 (fun times>0) >>True Checking (4) s(W) * P => (W * P) + P (fun times>plus) (fun times=times) subterm comparison of args w. LR LR (meta W)[is acc in s(W),P] [is positive in s(W)] [is acc in W] (meta P)[is acc in s(W),P] [is positive in s(W)] [is acc in P] (meta P)[is acc in s(W),P] [is positive in s(W)] [is acc in P] >>True Checking (5) curry(F1,Y1,U1) => F1[Y1,U1] (meta F1)[is acc in F1,Y1,U1] [is acc in F1] (meta Y1)[is acc in F1,Y1,U1] [is acc in Y1] (meta U1)[is acc in F1,Y1,U1] [is acc in U1] >>True Checking (6) map(H1,nil) => nil (fun map>nil) >>True Checking (7) map(I1,cons(P1,X2)) => cons(I1[P1],map(I1,X2)) (fun map>cons) (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] (fun map=map) subterm comparison of args w. LR LR (meta I1)[is acc in I1,cons(P1,X2)] [is acc in I1] (meta X2)[is acc in I1,cons(P1,X2)] [is positive in cons(P1,X2)] [is acc in X2] >>True Checking (8) inc => map(curry(plus,s(0))) (fun inc>map) (fun inc>curry) (fun inc>plus) (fun inc>s) (fun inc>0) >>True Checking (9) double => map(curry(times,s(s(0)))) (fun double>map) (fun double>curry) (fun double>times) (fun double>s) (fun double>s) (fun double>0) >>True #SN! ******** Signature ******** 0 : b cons : (b,a) -> a curry : (((b,b) -> b),b,b) -> b double : a -> a inc : a -> a map : ((b -> b),a) -> a nil : a plus : (b,b) -> b s : b -> b times : (b,b) -> b ******** Computation Rules ******** (1) 0 + X => X (2) s(Y) + U => s(Y + U) (3) 0 * V => 0 (4) s(W) * P => (W * P) + P (5) curry(F1,Y1,U1) => F1[Y1,U1] (6) map(H1,nil) => nil (7) map(I1,cons(P1,X2)) => cons(I1[P1],map(I1,X2)) (8) inc => map(curry(plus,s(0))) (9) double => map(curry(times,s(s(0)))) YES