2021-04-11 03:39:17 (CEST) cTI start
% cTI_lt 0.25 using 23.619 MLIPS SICStus 3.8.5 (x86-linux-glibc2.1): Mon Oct 30 16:34:14 CET 2000.
% cTI: Rt=60ms, Wt=59ms. NTI: Rt=4ms, Wt=2ms at most 72 inferences for useful informations.
% NTI summary: Complete result is optimal.
app(A,B,C)terminates_if b(A);b(C).
% optimal. loops found: [app([A|_],x,[A|_])]. NTI took 4ms,72i,72i
reverse(A,B)terminates_if b(A).
% optimal. loops found: [reverse([_|_],_),reverse([_|_],y)]. NTI took 0ms,72i,72i
% Comparison with termination analyzers
% A termination analyser of identical power would verify
% with the following 5 proofs the 2 inferred conditions:
app(f, f, b).
% ==> termination proof established
app(b, f, f).
% ==> termination proof established
app(f, b, f).
% ==> no proof found
reverse(b, f).
% ==> termination proof established
reverse(f, b).
% ==> no proof found
2021-04-11 03:39:17 (CEST)
cTI finishedTooltip: You can skip this comparison with termination analyzers by selecting "Comp. skipped" above
Analyzed program located at URL http://www.complang.tuwien.ac.at/cti/bench/apt_flptp/NAIVE_REVERSE:
% reverse(Xs, Ys) :- Ys is a reverse of the list Xs. reverse([], []). reverse([X | Xs], Ys) :- reverse(Xs, Zs), app(Zs, [X], Ys). % augmented by the APPEND program app([], Ys, Ys). app([X | Xs], Ys, [X | Zs]) :- app(Xs, Ys, Zs).