/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, if, nil, node, s, true Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (1) map(F,nil) => nil (fun map>nil) >>True Checking (2) map(Z,cons(U,V)) => cons(Z[U],map(Z,V)) (fun map>cons) (meta Z)[is acc in Z,cons(U,V)] [is acc in Z] (meta U)[is acc in Z,cons(U,V)] [is positive in cons(U,V)] [is acc in U] (fun map=map) subterm comparison of args w. LR LR (meta Z)[is acc in Z,cons(U,V)] [is acc in Z] (meta V)[is acc in Z,cons(U,V)] [is positive in cons(U,V)] [is acc in V] >>True Checking (3) le(0,W) => true (fun le>true) >>True Checking (4) le(s(P),0) => false (fun le>false) >>True Checking (5) le(s(X1),s(Y1)) => le(X1,Y1) (fun le=le) subterm comparison of args w. LR LR (meta X1)[is acc in s(X1),s(Y1)] [is positive in s(X1)] [is acc in X1] (meta Y1)[is acc in s(X1),s(Y1)] [is positive in s(X1)] [is positive in s(Y1)] [is acc in Y1] >>True Checking (6) maxlist(U1,cons(V1,W1)) => if(le(U1,V1),maxlist(V1,W1)) (fun maxlist>if) (fun maxlist>le) (meta U1)[is acc in U1,cons(V1,W1)] [is acc in U1] (meta V1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in V1] (fun maxlist=maxlist) subterm comparison of args w. LR LR >>False Try again using status RL Checking (1) map(F,nil) => nil (fun map>nil) >>True Checking (2) map(Z,cons(U,V)) => cons(Z[U],map(Z,V)) (fun map>cons) (meta Z)[is acc in Z,cons(U,V)] [is acc in Z] (meta U)[is acc in Z,cons(U,V)] [is positive in cons(U,V)] [is acc in U] (fun map=map) subterm comparison of args w. RL RL (meta Z)[is acc in Z,cons(U,V)] [is acc in Z] (meta V)[is acc in Z,cons(U,V)] [is positive in cons(U,V)] [is acc in V] >>True Checking (3) le(0,W) => true (fun le>true) >>True Checking (4) le(s(P),0) => false (fun le>false) >>True Checking (5) le(s(X1),s(Y1)) => le(X1,Y1) (fun le=le) subterm comparison of args w. RL RL (meta X1)[is acc in s(X1),s(Y1)] [is positive in s(X1)] [is acc in X1] (meta Y1)[is acc in s(X1),s(Y1)] [is positive in s(X1)] [is positive in s(Y1)] [is acc in Y1] >>True Checking (6) maxlist(U1,cons(V1,W1)) => if(le(U1,V1),maxlist(V1,W1)) (fun maxlist>if) (fun maxlist>le) (meta U1)[is acc in U1,cons(V1,W1)] [is acc in U1] (meta V1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in V1] (fun maxlist=maxlist) subterm comparison of args w. RL RL (meta V1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in V1] (meta W1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in W1] >>True Checking (7) maxlist(P1,nil) => P1 (meta P1)[is acc in P1,nil] [is acc in P1] >>True Checking (8) height(node(X2,Y2)) => s(maxlist(0,map(height,Y2))) (fun height>s) (fun height>maxlist) (fun height>0) (fun height>map) (fun height=height) subterm comparison of args w. RL RL >>False Try again using status Mul Checking (1) map(F,nil) => nil (fun map>nil) >>True Checking (2) map(Z,cons(U,V)) => cons(Z[U],map(Z,V)) (fun map>cons) (meta Z)[is acc in Z,cons(U,V)] [is acc in Z] (meta U)[is acc in Z,cons(U,V)] [is positive in cons(U,V)] [is acc in U] (fun map=map) subterm comparison of args w. Mul Mul (meta Z)[is acc in Z,cons(U,V)] [is acc in Z] (meta V)[is acc in Z,cons(U,V)] [is positive in cons(U,V)] [is acc in V] >>True Checking (3) le(0,W) => true (fun le>true) >>True Checking (4) le(s(P),0) => false (fun le>false) >>True Checking (5) le(s(X1),s(Y1)) => le(X1,Y1) (fun le=le) subterm comparison of args w. Mul Mul (meta X1)[is acc in s(X1),s(Y1)] [is positive in s(X1)] [is acc in X1] (meta Y1)[is acc in s(X1),s(Y1)] [is positive in s(X1)] [is positive in s(Y1)] [is acc in Y1] >>True Checking (6) maxlist(U1,cons(V1,W1)) => if(le(U1,V1),maxlist(V1,W1)) (fun maxlist>if) (fun maxlist>le) (meta U1)[is acc in U1,cons(V1,W1)] [is acc in U1] (meta V1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in V1] (fun maxlist=maxlist) subterm comparison of args w. Mul Mul (meta V1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in V1] (meta W1)[is acc in U1,cons(V1,W1)] [is positive in cons(V1,W1)] [is acc in W1] >>True Checking (7) maxlist(P1,nil) => P1 (meta P1)[is acc in P1,nil] [is acc in P1] >>True Checking (8) height(node(X2,Y2)) => s(maxlist(0,map(height,Y2))) (fun height>s) (fun height>maxlist) (fun height>0) (fun height>map) (fun height=height) subterm comparison of args w. Mul Mul (meta Y2)[is acc in node(X2,Y2)] [is positive in node(X2,Y2)] [is acc in Y2] >>True #SN! ******** Signature ******** 0 : d cons : (d,c) -> c false : a height : d -> d if : (a,d) -> d le : (d,d) -> a map : ((d -> d),c) -> c maxlist : (d,c) -> d nil : c node : (b,c) -> d s : d -> d true : a ******** Computation Rules ******** (1) map(F,nil) => nil (2) map(Z,cons(U,V)) => cons(Z[U],map(Z,V)) (3) le(0,W) => true (4) le(s(P),0) => false (5) le(s(X1),s(Y1)) => le(X1,Y1) (6) maxlist(U1,cons(V1,W1)) => if(le(U1,V1),maxlist(V1,W1)) (7) maxlist(P1,nil) => P1 (8) height(node(X2,Y2)) => s(maxlist(0,map(height,Y2))) YES