/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: cons, nil Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (1) nil@X => X (meta X)[is acc in nil,X] [is positive in nil] [is acc in X] >>True Checking (2) cons(Y,U)@V => cons(Y,U@V) (fun app>cons) (meta Y)[is acc in cons(Y,U),V] [is positive in cons(Y,U)] [is acc in Y] (fun app=app) subterm comparison of args w. LR LR (meta U)[is acc in cons(Y,U),V] [is positive in cons(Y,U)] [is acc in U] (meta V)[is acc in cons(Y,U),V] [is positive in cons(Y,U)] [is acc in V] >>True Checking (3) foldl(%Y.%X.I[%Y,%X],P,nil) => P (meta P)[is acc in %Y.%X.I[%Y,%X],P,nil] [is acc in P] >>True Checking (4) foldl(%U.%Z.F1[%U,%Z],Y1,cons(U1,V1)) => foldl(%W.%V.F1[%W,%V],F1[Y1,U1],V1) (fun foldl=foldl) subterm comparison of args w. LR LR >>False Try again using status RL Checking (1) nil@X => X (meta X)[is acc in nil,X] [is positive in nil] [is acc in X] >>True Checking (2) cons(Y,U)@V => cons(Y,U@V) (fun app>cons) (meta Y)[is acc in cons(Y,U),V] [is positive in cons(Y,U)] [is acc in Y] (fun app=app) subterm comparison of args w. RL RL (meta U)[is acc in cons(Y,U),V] [is positive in cons(Y,U)] [is acc in U] (meta V)[is acc in cons(Y,U),V] [is positive in cons(Y,U)] [is acc in V] >>True Checking (3) foldl(%Y.%X.I[%Y,%X],P,nil) => P (meta P)[is acc in %Y.%X.I[%Y,%X],P,nil] [is acc in P] >>True Checking (4) foldl(%U.%Z.F1[%U,%Z],Y1,cons(U1,V1)) => foldl(%W.%V.F1[%W,%V],F1[Y1,U1],V1) (fun foldl=foldl) subterm comparison of args w. RL RL (meta F1)[is acc in %U.%Z.F1[%U,%Z],Y1,cons(U1,V1)] [is acc in F1[%U,%Z]] (meta F1)[is acc in %U.%Z.F1[%U,%Z],Y1,cons(U1,V1)] [is acc in F1[%U,%Z]] (meta Y1)[is acc in %U.%Z.F1[%U,%Z],Y1,cons(U1,V1)] [is acc in Y1] (meta U1)[is acc in %U.%Z.F1[%U,%Z],Y1,cons(U1,V1)] [is positive in cons(U1,V1)] [is acc in U1] (meta V1)[is acc in %U.%Z.F1[%U,%Z],Y1,cons(U1,V1)] [is positive in cons(U1,V1)] [is acc in V1] >>True Checking (5) iconsc(W1,P1) => cons(P1,W1) (fun iconsc>cons) (meta P1)[is acc in W1,P1] [is acc in P1] (meta W1)[is acc in W1,P1] [is acc in W1] >>True Checking (6) reverse(X2) => foldl(%G.%F.iconsc(%G,%F),nil,X2) (fun reverse>foldl) (fun reverse>iconsc) (fun reverse>nil) (meta X2)[is acc in X2] [is acc in X2] >>True Checking (7) reverse1(Y2) => foldl(%H.%I.(cons(%I,nil)@%H),nil,Y2) (fun reverse1>foldl) (fun reverse1>app) (fun reverse1>cons) (fun reverse1>nil) (fun reverse1>nil) (meta Y2)[is acc in Y2] [is acc in Y2] >>True #SN! ******** Signature ******** app : (list,list) -> list cons : (nat,list) -> list foldl : (((list,nat) -> list),list,list) -> list iconsc : (list,nat) -> list nil : list reverse : list -> list reverse1 : list -> list ******** Computation Rules ******** (1) nil@X => X (2) cons(Y,U)@V => cons(Y,U@V) (3) foldl(%Y.%X.I[%Y,%X],P,nil) => P (4) foldl(%U.%Z.F1[%U,%Z],Y1,cons(U1,V1)) => foldl(%W.%V.F1[%W,%V],F1[Y1,U1],V1) (5) iconsc(W1,P1) => cons(P1,W1) (6) reverse(X2) => foldl(%G.%F.iconsc(%G,%F),nil,X2) (7) reverse1(Y2) => foldl(%H.%I.(cons(%I,nil)@%H),nil,Y2) YES