/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: nil, cons Checking type order >>OK Checking positivity of constructors >>OK Checking function dependency >>OK Checking (1) nil@Xs => Xs (meta Xs)[is acc in nil,Xs] [is positive in nil] [is acc in Xs] >>True Checking (2) cons(X,Xs)@Ys => cons(X,Xs@Ys) (fun app>cons) (meta X)[is acc in cons(X,Xs),Ys] [is positive in cons(X,Xs)] [is acc in X] (fun app=app) subterm comparison of args w. LR LR (meta Xs)[is acc in cons(X,Xs),Ys] [is positive in cons(X,Xs)] [is acc in Xs] (meta Ys)[is acc in cons(X,Xs),Ys] [is positive in cons(X,Xs)] [is acc in Ys] >>True Checking (3) foldl(F,Xs,nil) => Xs (meta Xs)[is acc in F,Xs,nil] [is acc in Xs] >>True Checking (4) foldl(F,Xs,cons(Y,Ys)) => foldl(F,F[Xs,Y],Ys) (fun foldl=foldl) subterm comparison of args w. LR LR >>False Try again using status RL Checking (1) nil@Xs => Xs (meta Xs)[is acc in nil,Xs] [is positive in nil] [is acc in Xs] >>True Checking (2) cons(X,Xs)@Ys => cons(X,Xs@Ys) (fun app>cons) (meta X)[is acc in cons(X,Xs),Ys] [is positive in cons(X,Xs)] [is acc in X] (fun app=app) subterm comparison of args w. RL RL (meta Xs)[is acc in cons(X,Xs),Ys] [is positive in cons(X,Xs)] [is acc in Xs] (meta Ys)[is acc in cons(X,Xs),Ys] [is positive in cons(X,Xs)] [is acc in Ys] >>True Checking (3) foldl(F,Xs,nil) => Xs (meta Xs)[is acc in F,Xs,nil] [is acc in Xs] >>True Checking (4) foldl(F,Xs,cons(Y,Ys)) => foldl(F,F[Xs,Y],Ys) (fun foldl=foldl) subterm comparison of args w. RL RL (meta F)[is acc in F,Xs,cons(Y,Ys)] [is acc in F] (meta F)[is acc in F,Xs,cons(Y,Ys)] [is acc in F] (meta Xs)[is acc in F,Xs,cons(Y,Ys)] [is acc in Xs] (meta Y)[is acc in F,Xs,cons(Y,Ys)] [is positive in cons(Y,Ys)] [is acc in Y] (meta Ys)[is acc in F,Xs,cons(Y,Ys)] [is positive in cons(Y,Ys)] [is acc in Ys] >>True Checking (5) iconsc => xs.x.cons(x,xs) (fun iconsc>cons) >>True Checking (6) reverse(Xs) => foldl(iconsc,nil,Xs) (fun reverse>foldl) (fun reverse>iconsc) (fun reverse>nil) (meta Xs)[is acc in Xs] [is acc in Xs] >>True Checking (7) reverse1(Xs) => foldl(lx.x.(cons(x,nil)@lx),nil,Xs) (fun reverse1>foldl) (fun reverse1>app) (fun reverse1>cons) (fun reverse1>nil) (fun reverse1>nil) (meta Xs)[is acc in Xs] [is acc in Xs] >>True #SN! ******** Signature ******** app : (list,list) -> list nil : list cons : (nat,list) -> list foldl : (((list,nat) -> list),list,list) -> list reverse : list -> list reverse1 : list -> list iconsc : (list,nat) -> list ******** Computation Rules ******** (1) nil@Xs => Xs (2) cons(X,Xs)@Ys => cons(X,Xs@Ys) (3) foldl(F,Xs,nil) => Xs (4) foldl(F,Xs,cons(Y,Ys)) => foldl(F,F[Xs,Y],Ys) (5) iconsc => xs.x.cons(x,xs) (6) reverse(Xs) => foldl(iconsc,nil,Xs) (7) reverse1(Xs) => foldl(lx.x.(cons(x,nil)@lx),nil,Xs) YES