(0) Obligation:

Clauses:

ordered([]) :- !.
ordered(.(X1, [])) :- !.
ordered(Xs) :- ','(head(Xs, X), ','(tail(Xs, Ys), ','(head(Ys, Y), ','(tail(Ys, Zs), ','(less(X, s(Y)), ordered(.(Y, Zs))))))).
head([], X2).
head(.(X, X3), X).
tail([], []).
tail(.(X4, Xs), Xs).
less(0, Y) :- ','(!, eq(Y, s(X5))).
less(X, Y) :- ','(p(X, Px), ','(p(Y, Py), less(Px, Py))).
p(0, 0).
p(s(X), X).
eq(X, X).

Queries:

ordered(g).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

less59(s(T77)) :- less59(T77).
less42(s(T71), 0) :- less59(T71).
less42(s(T71), s(T80)) :- less42(T71, T80).
ordered1(.(s(T48), .(T52, T31))) :- less42(T48, T52).
ordered1(.(T16, .(T30, T31))) :- ','(lessc26(T16, T30), ordered1(.(T30, T31))).

Clauses:

orderedc1([]).
orderedc1(.(T3, [])).
orderedc1(.(T16, .(T30, T31))) :- ','(lessc26(T16, T30), orderedc1(.(T30, T31))).
lessc59(s(T77)) :- lessc59(T77).
lessc42(0, s(T62)).
lessc42(s(T71), 0) :- lessc59(T71).
lessc42(s(T71), s(T80)) :- lessc42(T71, T80).
lessc26(0, T39).
lessc26(s(T48), T52) :- lessc42(T48, T52).

Afs:

ordered1(x1)  =  ordered1(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
ordered1_in: (b)
less42_in: (b,b)
less59_in: (b)
lessc26_in: (b,b)
lessc42_in: (b,b)
lessc59_in: (b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

ORDERED1_IN_G(.(s(T48), .(T52, T31))) → U4_G(T48, T52, T31, less42_in_gg(T48, T52))
ORDERED1_IN_G(.(s(T48), .(T52, T31))) → LESS42_IN_GG(T48, T52)
LESS42_IN_GG(s(T71), 0) → U2_GG(T71, less59_in_g(T71))
LESS42_IN_GG(s(T71), 0) → LESS59_IN_G(T71)
LESS59_IN_G(s(T77)) → U1_G(T77, less59_in_g(T77))
LESS59_IN_G(s(T77)) → LESS59_IN_G(T77)
LESS42_IN_GG(s(T71), s(T80)) → U3_GG(T71, T80, less42_in_gg(T71, T80))
LESS42_IN_GG(s(T71), s(T80)) → LESS42_IN_GG(T71, T80)
ORDERED1_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessc26_in_gg(T16, T30))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → U6_G(T16, T30, T31, ordered1_in_g(.(T30, T31)))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → ORDERED1_IN_G(.(T30, T31))

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

Pi is empty.
We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

ORDERED1_IN_G(.(s(T48), .(T52, T31))) → U4_G(T48, T52, T31, less42_in_gg(T48, T52))
ORDERED1_IN_G(.(s(T48), .(T52, T31))) → LESS42_IN_GG(T48, T52)
LESS42_IN_GG(s(T71), 0) → U2_GG(T71, less59_in_g(T71))
LESS42_IN_GG(s(T71), 0) → LESS59_IN_G(T71)
LESS59_IN_G(s(T77)) → U1_G(T77, less59_in_g(T77))
LESS59_IN_G(s(T77)) → LESS59_IN_G(T77)
LESS42_IN_GG(s(T71), s(T80)) → U3_GG(T71, T80, less42_in_gg(T71, T80))
LESS42_IN_GG(s(T71), s(T80)) → LESS42_IN_GG(T71, T80)
ORDERED1_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessc26_in_gg(T16, T30))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → U6_G(T16, T30, T31, ordered1_in_g(.(T30, T31)))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → ORDERED1_IN_G(.(T30, T31))

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

Pi is empty.
We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 7 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESS59_IN_G(s(T77)) → LESS59_IN_G(T77)

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

Pi is empty.
We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESS59_IN_G(s(T77)) → LESS59_IN_G(T77)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LESS59_IN_G(s(T77)) → LESS59_IN_G(T77)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • LESS59_IN_G(s(T77)) → LESS59_IN_G(T77)
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESS42_IN_GG(s(T71), s(T80)) → LESS42_IN_GG(T71, T80)

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

Pi is empty.
We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESS42_IN_GG(s(T71), s(T80)) → LESS42_IN_GG(T71, T80)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LESS42_IN_GG(s(T71), s(T80)) → LESS42_IN_GG(T71, T80)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • LESS42_IN_GG(s(T71), s(T80)) → LESS42_IN_GG(T71, T80)
    The graph contains the following edges 1 > 1, 2 > 2

(20) YES

(21) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

ORDERED1_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessc26_in_gg(T16, T30))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → ORDERED1_IN_G(.(T30, T31))

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

Pi is empty.
We have to consider all (P,R,Pi)-chains

(22) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(23) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ORDERED1_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessc26_in_gg(T16, T30))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → ORDERED1_IN_G(.(T30, T31))

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

The set Q consists of the following terms:

lessc26_in_gg(x0, x1)
lessc42_in_gg(x0, x1)
lessc59_in_g(x0)
U10_g(x0, x1)
U11_gg(x0, x1)
U12_gg(x0, x1, x2)
U13_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(24) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.

Strictly oriented rules of the TRS R:

U11_gg(T71, lessc59_out_g(T71)) → lessc42_out_gg(s(T71), 0)

Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 2·x1 + x2   
POL(0) = 0   
POL(ORDERED1_IN_G(x1)) = 2·x1   
POL(U10_g(x1, x2)) = x1 + x2   
POL(U11_gg(x1, x2)) = x1 + x2   
POL(U12_gg(x1, x2, x3)) = x1 + x2 + x3   
POL(U13_gg(x1, x2, x3)) = x1 + x2 + x3   
POL(U5_G(x1, x2, x3, x4)) = 2·x1 + 2·x2 + 2·x3 + x4   
POL(lessc26_in_gg(x1, x2)) = x1 + 2·x2   
POL(lessc26_out_gg(x1, x2)) = x1 + 2·x2   
POL(lessc42_in_gg(x1, x2)) = x1 + x2   
POL(lessc42_out_gg(x1, x2)) = x1 + x2   
POL(lessc59_in_g(x1)) = x1   
POL(lessc59_out_g(x1)) = 1 + x1   
POL(s(x1)) = 2·x1   

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ORDERED1_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessc26_in_gg(T16, T30))
U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → ORDERED1_IN_G(.(T30, T31))

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

The set Q consists of the following terms:

lessc26_in_gg(x0, x1)
lessc42_in_gg(x0, x1)
lessc59_in_g(x0)
U10_g(x0, x1)
U11_gg(x0, x1)
U12_gg(x0, x1, x2)
U13_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(26) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

ORDERED1_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessc26_in_gg(T16, T30))


Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + 2·x1 + 2·x2   
POL(0) = 0   
POL(ORDERED1_IN_G(x1)) = x1   
POL(U10_g(x1, x2)) = x1 + x2   
POL(U11_gg(x1, x2)) = x1 + x2   
POL(U12_gg(x1, x2, x3)) = x1 + x2 + x3   
POL(U13_gg(x1, x2, x3)) = x1 + x2 + x3   
POL(U5_G(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + 2·x3 + x4   
POL(lessc26_in_gg(x1, x2)) = x1 + 2·x2   
POL(lessc26_out_gg(x1, x2)) = x1 + 2·x2   
POL(lessc42_in_gg(x1, x2)) = x1 + x2   
POL(lessc42_out_gg(x1, x2)) = x1 + x2   
POL(lessc59_in_g(x1)) = x1   
POL(lessc59_out_g(x1)) = x1   
POL(s(x1)) = 2·x1   

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U5_G(T16, T30, T31, lessc26_out_gg(T16, T30)) → ORDERED1_IN_G(.(T30, T31))

The TRS R consists of the following rules:

lessc26_in_gg(0, T39) → lessc26_out_gg(0, T39)
lessc26_in_gg(s(T48), T52) → U13_gg(T48, T52, lessc42_in_gg(T48, T52))
lessc42_in_gg(0, s(T62)) → lessc42_out_gg(0, s(T62))
lessc42_in_gg(s(T71), 0) → U11_gg(T71, lessc59_in_g(T71))
lessc59_in_g(s(T77)) → U10_g(T77, lessc59_in_g(T77))
U10_g(T77, lessc59_out_g(T77)) → lessc59_out_g(s(T77))
lessc42_in_gg(s(T71), s(T80)) → U12_gg(T71, T80, lessc42_in_gg(T71, T80))
U12_gg(T71, T80, lessc42_out_gg(T71, T80)) → lessc42_out_gg(s(T71), s(T80))
U13_gg(T48, T52, lessc42_out_gg(T48, T52)) → lessc26_out_gg(s(T48), T52)

The set Q consists of the following terms:

lessc26_in_gg(x0, x1)
lessc42_in_gg(x0, x1)
lessc59_in_g(x0)
U10_g(x0, x1)
U11_gg(x0, x1)
U12_gg(x0, x1, x2)
U13_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(28) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(29) TRUE