(0) Obligation:

Clauses:

in_order(void, L) :- ','(!, eq(L, [])).
in_order(T, Xs) :- ','(value(T, X), ','(app(Ls, .(X, Rs), Xs), ','(left(T, L), ','(in_order(L, Ls), ','(right(T, R), in_order(R, Rs)))))).
app([], X, X).
app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs).
left(void, void).
left(node(L, X1, X2), L).
right(void, void).
right(node(X3, X4, R), R).
value(void, X5).
value(node(X6, X, X7), X).
eq(X, X).

Queries:

in_order(a,g).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

app16(.(X83, X84), X85, X86, .(X83, T18)) :- app16(X84, X85, X86, T18).
app47(.(X168, X169), T66, X170, .(X168, T65)) :- app47(X169, T66, X170, T65).
in_order1(void, T11) :- app16(X20, X33, X21, T11).
in_order1(void, T11) :- ','(appc16(T13, T14, T15, T11), in_order30(T13)).
in_order1(void, T11) :- ','(appc16(T13, T14, T15, T11), ','(in_orderc30(T13), in_order30(T15))).
in_order1(node(T44, T43, T45), T11) :- app47(X20, T43, X21, T11).
in_order1(node(T82, T80, T83), T11) :- ','(appc47(T48, T80, T49, T11), in_order1(T82, T48)).
in_order1(node(T97, T98, T100), T11) :- ','(appc47(T48, T98, T49, T11), ','(in_orderc1(T97, T48), in_order1(T100, T49))).

Clauses:

appc16([], X60, X61, .(X60, X61)).
appc16(.(X83, X84), X85, X86, .(X83, T18)) :- appc16(X84, X85, X86, T18).
in_orderc30([]).
appc47([], T59, X148, .(T59, X148)).
appc47(.(X168, X169), T66, X170, .(X168, T65)) :- appc47(X169, T66, X170, T65).
in_orderc1(void, []).
in_orderc1(void, T11) :- ','(appc16(T13, T14, T15, T11), ','(in_orderc30(T13), in_orderc30(T15))).
in_orderc1(node(T97, T98, T100), T11) :- ','(appc47(T48, T98, T49, T11), ','(in_orderc1(T97, T48), in_orderc1(T100, T49))).

Afs:

in_order1(x1, x2)  =  in_order1(x2)

(3) UndefinedPredicateInTriplesTransformerProof (SOUND transformation)

Deleted triples and predicates having undefined goals [UNKNOWN].

(4) Obligation:

Triples:

app16(.(X83, X84), X85, X86, .(X83, T18)) :- app16(X84, X85, X86, T18).
app47(.(X168, X169), T66, X170, .(X168, T65)) :- app47(X169, T66, X170, T65).
in_order1(void, T11) :- app16(X20, X33, X21, T11).
in_order1(node(T44, T43, T45), T11) :- app47(X20, T43, X21, T11).
in_order1(node(T82, T80, T83), T11) :- ','(appc47(T48, T80, T49, T11), in_order1(T82, T48)).
in_order1(node(T97, T98, T100), T11) :- ','(appc47(T48, T98, T49, T11), ','(in_orderc1(T97, T48), in_order1(T100, T49))).

Clauses:

appc16([], X60, X61, .(X60, X61)).
appc16(.(X83, X84), X85, X86, .(X83, T18)) :- appc16(X84, X85, X86, T18).
in_orderc30([]).
appc47([], T59, X148, .(T59, X148)).
appc47(.(X168, X169), T66, X170, .(X168, T65)) :- appc47(X169, T66, X170, T65).
in_orderc1(void, []).
in_orderc1(void, T11) :- ','(appc16(T13, T14, T15, T11), ','(in_orderc30(T13), in_orderc30(T15))).
in_orderc1(node(T97, T98, T100), T11) :- ','(appc47(T48, T98, T49, T11), ','(in_orderc1(T97, T48), in_orderc1(T100, T49))).

Afs:

in_order1(x1, x2)  =  in_order1(x2)

(5) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
in_order1_in: (f,b)
app16_in: (f,f,f,b)
app47_in: (f,f,f,b)
appc47_in: (f,f,f,b)
in_orderc1_in: (f,b)
appc16_in: (f,f,f,b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

IN_ORDER1_IN_AG(void, T11) → U3_AG(T11, app16_in_aaag(X20, X33, X21, T11))
IN_ORDER1_IN_AG(void, T11) → APP16_IN_AAAG(X20, X33, X21, T11)
APP16_IN_AAAG(.(X83, X84), X85, X86, .(X83, T18)) → U1_AAAG(X83, X84, X85, X86, T18, app16_in_aaag(X84, X85, X86, T18))
APP16_IN_AAAG(.(X83, X84), X85, X86, .(X83, T18)) → APP16_IN_AAAG(X84, X85, X86, T18)
IN_ORDER1_IN_AG(node(T44, T43, T45), T11) → U4_AG(T44, T43, T45, T11, app47_in_aaag(X20, T43, X21, T11))
IN_ORDER1_IN_AG(node(T44, T43, T45), T11) → APP47_IN_AAAG(X20, T43, X21, T11)
APP47_IN_AAAG(.(X168, X169), T66, X170, .(X168, T65)) → U2_AAAG(X168, X169, T66, X170, T65, app47_in_aaag(X169, T66, X170, T65))
APP47_IN_AAAG(.(X168, X169), T66, X170, .(X168, T65)) → APP47_IN_AAAG(X169, T66, X170, T65)
IN_ORDER1_IN_AG(node(T82, T80, T83), T11) → U5_AG(T82, T80, T83, T11, appc47_in_aaag(T48, T80, T49, T11))
U5_AG(T82, T80, T83, T11, appc47_out_aaag(T48, T80, T49, T11)) → U6_AG(T82, T80, T83, T11, in_order1_in_ag(T82, T48))
U5_AG(T82, T80, T83, T11, appc47_out_aaag(T48, T80, T49, T11)) → IN_ORDER1_IN_AG(T82, T48)
IN_ORDER1_IN_AG(node(T97, T98, T100), T11) → U7_AG(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U7_AG(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U8_AG(T97, T98, T100, T11, T49, in_orderc1_in_ag(T97, T48))
U8_AG(T97, T98, T100, T11, T49, in_orderc1_out_ag(T97, T48)) → U9_AG(T97, T98, T100, T11, in_order1_in_ag(T100, T49))
U8_AG(T97, T98, T100, T11, T49, in_orderc1_out_ag(T97, T48)) → IN_ORDER1_IN_AG(T100, T49)

The TRS R consists of the following rules:

appc47_in_aaag([], T59, X148, .(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, X169), T66, X170, .(X168, T65)) → U12_aaag(X168, X169, T66, X170, T65, appc47_in_aaag(X169, T66, X170, T65))
U12_aaag(X168, X169, T66, X170, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag(void, []) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(void, T11) → U13_ag(T11, appc16_in_aaag(T13, T14, T15, T11))
appc16_in_aaag([], X60, X61, .(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, X84), X85, X86, .(X83, T18)) → U11_aaag(X83, X84, X85, X86, T18, appc16_in_aaag(X84, X85, X86, T18))
U11_aaag(X83, X84, X85, X86, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T13, T14, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T13, T14, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(node(T97, T98, T100), T11) → U16_ag(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U16_ag(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_in_ag(T97, T48))
U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T100, T11, in_orderc1_in_ag(T100, T49))
U18_ag(T97, T98, T100, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The argument filtering Pi contains the following mapping:
in_order1_in_ag(x1, x2)  =  in_order1_in_ag(x2)
app16_in_aaag(x1, x2, x3, x4)  =  app16_in_aaag(x4)
.(x1, x2)  =  .(x1, x2)
app47_in_aaag(x1, x2, x3, x4)  =  app47_in_aaag(x4)
appc47_in_aaag(x1, x2, x3, x4)  =  appc47_in_aaag(x4)
appc47_out_aaag(x1, x2, x3, x4)  =  appc47_out_aaag(x1, x2, x3, x4)
U12_aaag(x1, x2, x3, x4, x5, x6)  =  U12_aaag(x1, x5, x6)
in_orderc1_in_ag(x1, x2)  =  in_orderc1_in_ag(x2)
[]  =  []
in_orderc1_out_ag(x1, x2)  =  in_orderc1_out_ag(x1, x2)
U13_ag(x1, x2)  =  U13_ag(x1, x2)
appc16_in_aaag(x1, x2, x3, x4)  =  appc16_in_aaag(x4)
appc16_out_aaag(x1, x2, x3, x4)  =  appc16_out_aaag(x1, x2, x3, x4)
U11_aaag(x1, x2, x3, x4, x5, x6)  =  U11_aaag(x1, x5, x6)
U14_ag(x1, x2, x3, x4, x5)  =  U14_ag(x1, x4, x5)
in_orderc30_in_g(x1)  =  in_orderc30_in_g(x1)
in_orderc30_out_g(x1)  =  in_orderc30_out_g(x1)
U15_ag(x1, x2)  =  U15_ag(x1, x2)
U16_ag(x1, x2, x3, x4, x5)  =  U16_ag(x4, x5)
U17_ag(x1, x2, x3, x4, x5, x6, x7)  =  U17_ag(x2, x4, x6, x7)
U18_ag(x1, x2, x3, x4, x5)  =  U18_ag(x1, x2, x4, x5)
void  =  void
node(x1, x2, x3)  =  node(x1, x2, x3)
IN_ORDER1_IN_AG(x1, x2)  =  IN_ORDER1_IN_AG(x2)
U3_AG(x1, x2)  =  U3_AG(x1, x2)
APP16_IN_AAAG(x1, x2, x3, x4)  =  APP16_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x5, x6)
U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x4, x5)
APP47_IN_AAAG(x1, x2, x3, x4)  =  APP47_IN_AAAG(x4)
U2_AAAG(x1, x2, x3, x4, x5, x6)  =  U2_AAAG(x1, x5, x6)
U5_AG(x1, x2, x3, x4, x5)  =  U5_AG(x4, x5)
U6_AG(x1, x2, x3, x4, x5)  =  U6_AG(x4, x5)
U7_AG(x1, x2, x3, x4, x5)  =  U7_AG(x4, x5)
U8_AG(x1, x2, x3, x4, x5, x6)  =  U8_AG(x4, x5, x6)
U9_AG(x1, x2, x3, x4, x5)  =  U9_AG(x4, x5)

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(6) Obligation:

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

IN_ORDER1_IN_AG(void, T11) → U3_AG(T11, app16_in_aaag(X20, X33, X21, T11))
IN_ORDER1_IN_AG(void, T11) → APP16_IN_AAAG(X20, X33, X21, T11)
APP16_IN_AAAG(.(X83, X84), X85, X86, .(X83, T18)) → U1_AAAG(X83, X84, X85, X86, T18, app16_in_aaag(X84, X85, X86, T18))
APP16_IN_AAAG(.(X83, X84), X85, X86, .(X83, T18)) → APP16_IN_AAAG(X84, X85, X86, T18)
IN_ORDER1_IN_AG(node(T44, T43, T45), T11) → U4_AG(T44, T43, T45, T11, app47_in_aaag(X20, T43, X21, T11))
IN_ORDER1_IN_AG(node(T44, T43, T45), T11) → APP47_IN_AAAG(X20, T43, X21, T11)
APP47_IN_AAAG(.(X168, X169), T66, X170, .(X168, T65)) → U2_AAAG(X168, X169, T66, X170, T65, app47_in_aaag(X169, T66, X170, T65))
APP47_IN_AAAG(.(X168, X169), T66, X170, .(X168, T65)) → APP47_IN_AAAG(X169, T66, X170, T65)
IN_ORDER1_IN_AG(node(T82, T80, T83), T11) → U5_AG(T82, T80, T83, T11, appc47_in_aaag(T48, T80, T49, T11))
U5_AG(T82, T80, T83, T11, appc47_out_aaag(T48, T80, T49, T11)) → U6_AG(T82, T80, T83, T11, in_order1_in_ag(T82, T48))
U5_AG(T82, T80, T83, T11, appc47_out_aaag(T48, T80, T49, T11)) → IN_ORDER1_IN_AG(T82, T48)
IN_ORDER1_IN_AG(node(T97, T98, T100), T11) → U7_AG(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U7_AG(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U8_AG(T97, T98, T100, T11, T49, in_orderc1_in_ag(T97, T48))
U8_AG(T97, T98, T100, T11, T49, in_orderc1_out_ag(T97, T48)) → U9_AG(T97, T98, T100, T11, in_order1_in_ag(T100, T49))
U8_AG(T97, T98, T100, T11, T49, in_orderc1_out_ag(T97, T48)) → IN_ORDER1_IN_AG(T100, T49)

The TRS R consists of the following rules:

appc47_in_aaag([], T59, X148, .(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, X169), T66, X170, .(X168, T65)) → U12_aaag(X168, X169, T66, X170, T65, appc47_in_aaag(X169, T66, X170, T65))
U12_aaag(X168, X169, T66, X170, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag(void, []) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(void, T11) → U13_ag(T11, appc16_in_aaag(T13, T14, T15, T11))
appc16_in_aaag([], X60, X61, .(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, X84), X85, X86, .(X83, T18)) → U11_aaag(X83, X84, X85, X86, T18, appc16_in_aaag(X84, X85, X86, T18))
U11_aaag(X83, X84, X85, X86, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T13, T14, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T13, T14, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(node(T97, T98, T100), T11) → U16_ag(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U16_ag(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_in_ag(T97, T48))
U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T100, T11, in_orderc1_in_ag(T100, T49))
U18_ag(T97, T98, T100, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The argument filtering Pi contains the following mapping:
in_order1_in_ag(x1, x2)  =  in_order1_in_ag(x2)
app16_in_aaag(x1, x2, x3, x4)  =  app16_in_aaag(x4)
.(x1, x2)  =  .(x1, x2)
app47_in_aaag(x1, x2, x3, x4)  =  app47_in_aaag(x4)
appc47_in_aaag(x1, x2, x3, x4)  =  appc47_in_aaag(x4)
appc47_out_aaag(x1, x2, x3, x4)  =  appc47_out_aaag(x1, x2, x3, x4)
U12_aaag(x1, x2, x3, x4, x5, x6)  =  U12_aaag(x1, x5, x6)
in_orderc1_in_ag(x1, x2)  =  in_orderc1_in_ag(x2)
[]  =  []
in_orderc1_out_ag(x1, x2)  =  in_orderc1_out_ag(x1, x2)
U13_ag(x1, x2)  =  U13_ag(x1, x2)
appc16_in_aaag(x1, x2, x3, x4)  =  appc16_in_aaag(x4)
appc16_out_aaag(x1, x2, x3, x4)  =  appc16_out_aaag(x1, x2, x3, x4)
U11_aaag(x1, x2, x3, x4, x5, x6)  =  U11_aaag(x1, x5, x6)
U14_ag(x1, x2, x3, x4, x5)  =  U14_ag(x1, x4, x5)
in_orderc30_in_g(x1)  =  in_orderc30_in_g(x1)
in_orderc30_out_g(x1)  =  in_orderc30_out_g(x1)
U15_ag(x1, x2)  =  U15_ag(x1, x2)
U16_ag(x1, x2, x3, x4, x5)  =  U16_ag(x4, x5)
U17_ag(x1, x2, x3, x4, x5, x6, x7)  =  U17_ag(x2, x4, x6, x7)
U18_ag(x1, x2, x3, x4, x5)  =  U18_ag(x1, x2, x4, x5)
void  =  void
node(x1, x2, x3)  =  node(x1, x2, x3)
IN_ORDER1_IN_AG(x1, x2)  =  IN_ORDER1_IN_AG(x2)
U3_AG(x1, x2)  =  U3_AG(x1, x2)
APP16_IN_AAAG(x1, x2, x3, x4)  =  APP16_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x5, x6)
U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x4, x5)
APP47_IN_AAAG(x1, x2, x3, x4)  =  APP47_IN_AAAG(x4)
U2_AAAG(x1, x2, x3, x4, x5, x6)  =  U2_AAAG(x1, x5, x6)
U5_AG(x1, x2, x3, x4, x5)  =  U5_AG(x4, x5)
U6_AG(x1, x2, x3, x4, x5)  =  U6_AG(x4, x5)
U7_AG(x1, x2, x3, x4, x5)  =  U7_AG(x4, x5)
U8_AG(x1, x2, x3, x4, x5, x6)  =  U8_AG(x4, x5, x6)
U9_AG(x1, x2, x3, x4, x5)  =  U9_AG(x4, x5)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

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

(8) Complex Obligation (AND)

(9) Obligation:

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

APP47_IN_AAAG(.(X168, X169), T66, X170, .(X168, T65)) → APP47_IN_AAAG(X169, T66, X170, T65)

The TRS R consists of the following rules:

appc47_in_aaag([], T59, X148, .(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, X169), T66, X170, .(X168, T65)) → U12_aaag(X168, X169, T66, X170, T65, appc47_in_aaag(X169, T66, X170, T65))
U12_aaag(X168, X169, T66, X170, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag(void, []) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(void, T11) → U13_ag(T11, appc16_in_aaag(T13, T14, T15, T11))
appc16_in_aaag([], X60, X61, .(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, X84), X85, X86, .(X83, T18)) → U11_aaag(X83, X84, X85, X86, T18, appc16_in_aaag(X84, X85, X86, T18))
U11_aaag(X83, X84, X85, X86, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T13, T14, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T13, T14, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(node(T97, T98, T100), T11) → U16_ag(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U16_ag(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_in_ag(T97, T48))
U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T100, T11, in_orderc1_in_ag(T100, T49))
U18_ag(T97, T98, T100, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
appc47_in_aaag(x1, x2, x3, x4)  =  appc47_in_aaag(x4)
appc47_out_aaag(x1, x2, x3, x4)  =  appc47_out_aaag(x1, x2, x3, x4)
U12_aaag(x1, x2, x3, x4, x5, x6)  =  U12_aaag(x1, x5, x6)
in_orderc1_in_ag(x1, x2)  =  in_orderc1_in_ag(x2)
[]  =  []
in_orderc1_out_ag(x1, x2)  =  in_orderc1_out_ag(x1, x2)
U13_ag(x1, x2)  =  U13_ag(x1, x2)
appc16_in_aaag(x1, x2, x3, x4)  =  appc16_in_aaag(x4)
appc16_out_aaag(x1, x2, x3, x4)  =  appc16_out_aaag(x1, x2, x3, x4)
U11_aaag(x1, x2, x3, x4, x5, x6)  =  U11_aaag(x1, x5, x6)
U14_ag(x1, x2, x3, x4, x5)  =  U14_ag(x1, x4, x5)
in_orderc30_in_g(x1)  =  in_orderc30_in_g(x1)
in_orderc30_out_g(x1)  =  in_orderc30_out_g(x1)
U15_ag(x1, x2)  =  U15_ag(x1, x2)
U16_ag(x1, x2, x3, x4, x5)  =  U16_ag(x4, x5)
U17_ag(x1, x2, x3, x4, x5, x6, x7)  =  U17_ag(x2, x4, x6, x7)
U18_ag(x1, x2, x3, x4, x5)  =  U18_ag(x1, x2, x4, x5)
void  =  void
node(x1, x2, x3)  =  node(x1, x2, x3)
APP47_IN_AAAG(x1, x2, x3, x4)  =  APP47_IN_AAAG(x4)

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

(10) UsableRulesProof (EQUIVALENT transformation)

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

(11) Obligation:

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

APP47_IN_AAAG(.(X168, X169), T66, X170, .(X168, T65)) → APP47_IN_AAAG(X169, T66, X170, T65)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APP47_IN_AAAG(x1, x2, x3, x4)  =  APP47_IN_AAAG(x4)

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

(12) PiDPToQDPProof (SOUND transformation)

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

(13) Obligation:

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

APP47_IN_AAAG(.(X168, T65)) → APP47_IN_AAAG(T65)

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

(14) 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:

  • APP47_IN_AAAG(.(X168, T65)) → APP47_IN_AAAG(T65)
    The graph contains the following edges 1 > 1

(15) YES

(16) Obligation:

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

APP16_IN_AAAG(.(X83, X84), X85, X86, .(X83, T18)) → APP16_IN_AAAG(X84, X85, X86, T18)

The TRS R consists of the following rules:

appc47_in_aaag([], T59, X148, .(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, X169), T66, X170, .(X168, T65)) → U12_aaag(X168, X169, T66, X170, T65, appc47_in_aaag(X169, T66, X170, T65))
U12_aaag(X168, X169, T66, X170, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag(void, []) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(void, T11) → U13_ag(T11, appc16_in_aaag(T13, T14, T15, T11))
appc16_in_aaag([], X60, X61, .(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, X84), X85, X86, .(X83, T18)) → U11_aaag(X83, X84, X85, X86, T18, appc16_in_aaag(X84, X85, X86, T18))
U11_aaag(X83, X84, X85, X86, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T13, T14, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T13, T14, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(node(T97, T98, T100), T11) → U16_ag(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U16_ag(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_in_ag(T97, T48))
U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T100, T11, in_orderc1_in_ag(T100, T49))
U18_ag(T97, T98, T100, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
appc47_in_aaag(x1, x2, x3, x4)  =  appc47_in_aaag(x4)
appc47_out_aaag(x1, x2, x3, x4)  =  appc47_out_aaag(x1, x2, x3, x4)
U12_aaag(x1, x2, x3, x4, x5, x6)  =  U12_aaag(x1, x5, x6)
in_orderc1_in_ag(x1, x2)  =  in_orderc1_in_ag(x2)
[]  =  []
in_orderc1_out_ag(x1, x2)  =  in_orderc1_out_ag(x1, x2)
U13_ag(x1, x2)  =  U13_ag(x1, x2)
appc16_in_aaag(x1, x2, x3, x4)  =  appc16_in_aaag(x4)
appc16_out_aaag(x1, x2, x3, x4)  =  appc16_out_aaag(x1, x2, x3, x4)
U11_aaag(x1, x2, x3, x4, x5, x6)  =  U11_aaag(x1, x5, x6)
U14_ag(x1, x2, x3, x4, x5)  =  U14_ag(x1, x4, x5)
in_orderc30_in_g(x1)  =  in_orderc30_in_g(x1)
in_orderc30_out_g(x1)  =  in_orderc30_out_g(x1)
U15_ag(x1, x2)  =  U15_ag(x1, x2)
U16_ag(x1, x2, x3, x4, x5)  =  U16_ag(x4, x5)
U17_ag(x1, x2, x3, x4, x5, x6, x7)  =  U17_ag(x2, x4, x6, x7)
U18_ag(x1, x2, x3, x4, x5)  =  U18_ag(x1, x2, x4, x5)
void  =  void
node(x1, x2, x3)  =  node(x1, x2, x3)
APP16_IN_AAAG(x1, x2, x3, x4)  =  APP16_IN_AAAG(x4)

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

(17) UsableRulesProof (EQUIVALENT transformation)

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

(18) Obligation:

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

APP16_IN_AAAG(.(X83, X84), X85, X86, .(X83, T18)) → APP16_IN_AAAG(X84, X85, X86, T18)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APP16_IN_AAAG(x1, x2, x3, x4)  =  APP16_IN_AAAG(x4)

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

(19) PiDPToQDPProof (SOUND transformation)

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

(20) Obligation:

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

APP16_IN_AAAG(.(X83, T18)) → APP16_IN_AAAG(T18)

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

(21) 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:

  • APP16_IN_AAAG(.(X83, T18)) → APP16_IN_AAAG(T18)
    The graph contains the following edges 1 > 1

(22) YES

(23) Obligation:

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

IN_ORDER1_IN_AG(node(T82, T80, T83), T11) → U5_AG(T82, T80, T83, T11, appc47_in_aaag(T48, T80, T49, T11))
U5_AG(T82, T80, T83, T11, appc47_out_aaag(T48, T80, T49, T11)) → IN_ORDER1_IN_AG(T82, T48)
IN_ORDER1_IN_AG(node(T97, T98, T100), T11) → U7_AG(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U7_AG(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U8_AG(T97, T98, T100, T11, T49, in_orderc1_in_ag(T97, T48))
U8_AG(T97, T98, T100, T11, T49, in_orderc1_out_ag(T97, T48)) → IN_ORDER1_IN_AG(T100, T49)

The TRS R consists of the following rules:

appc47_in_aaag([], T59, X148, .(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, X169), T66, X170, .(X168, T65)) → U12_aaag(X168, X169, T66, X170, T65, appc47_in_aaag(X169, T66, X170, T65))
U12_aaag(X168, X169, T66, X170, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag(void, []) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(void, T11) → U13_ag(T11, appc16_in_aaag(T13, T14, T15, T11))
appc16_in_aaag([], X60, X61, .(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, X84), X85, X86, .(X83, T18)) → U11_aaag(X83, X84, X85, X86, T18, appc16_in_aaag(X84, X85, X86, T18))
U11_aaag(X83, X84, X85, X86, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T13, T14, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T13, T14, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(node(T97, T98, T100), T11) → U16_ag(T97, T98, T100, T11, appc47_in_aaag(T48, T98, T49, T11))
U16_ag(T97, T98, T100, T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_in_ag(T97, T48))
U17_ag(T97, T98, T100, T11, T48, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T100, T11, in_orderc1_in_ag(T100, T49))
U18_ag(T97, T98, T100, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
appc47_in_aaag(x1, x2, x3, x4)  =  appc47_in_aaag(x4)
appc47_out_aaag(x1, x2, x3, x4)  =  appc47_out_aaag(x1, x2, x3, x4)
U12_aaag(x1, x2, x3, x4, x5, x6)  =  U12_aaag(x1, x5, x6)
in_orderc1_in_ag(x1, x2)  =  in_orderc1_in_ag(x2)
[]  =  []
in_orderc1_out_ag(x1, x2)  =  in_orderc1_out_ag(x1, x2)
U13_ag(x1, x2)  =  U13_ag(x1, x2)
appc16_in_aaag(x1, x2, x3, x4)  =  appc16_in_aaag(x4)
appc16_out_aaag(x1, x2, x3, x4)  =  appc16_out_aaag(x1, x2, x3, x4)
U11_aaag(x1, x2, x3, x4, x5, x6)  =  U11_aaag(x1, x5, x6)
U14_ag(x1, x2, x3, x4, x5)  =  U14_ag(x1, x4, x5)
in_orderc30_in_g(x1)  =  in_orderc30_in_g(x1)
in_orderc30_out_g(x1)  =  in_orderc30_out_g(x1)
U15_ag(x1, x2)  =  U15_ag(x1, x2)
U16_ag(x1, x2, x3, x4, x5)  =  U16_ag(x4, x5)
U17_ag(x1, x2, x3, x4, x5, x6, x7)  =  U17_ag(x2, x4, x6, x7)
U18_ag(x1, x2, x3, x4, x5)  =  U18_ag(x1, x2, x4, x5)
void  =  void
node(x1, x2, x3)  =  node(x1, x2, x3)
IN_ORDER1_IN_AG(x1, x2)  =  IN_ORDER1_IN_AG(x2)
U5_AG(x1, x2, x3, x4, x5)  =  U5_AG(x4, x5)
U7_AG(x1, x2, x3, x4, x5)  =  U7_AG(x4, x5)
U8_AG(x1, x2, x3, x4, x5, x6)  =  U8_AG(x4, x5, x6)

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

(24) PiDPToQDPProof (SOUND transformation)

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

(25) Obligation:

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

IN_ORDER1_IN_AG(T11) → U5_AG(T11, appc47_in_aaag(T11))
U5_AG(T11, appc47_out_aaag(T48, T80, T49, T11)) → IN_ORDER1_IN_AG(T48)
IN_ORDER1_IN_AG(T11) → U7_AG(T11, appc47_in_aaag(T11))
U7_AG(T11, appc47_out_aaag(T48, T98, T49, T11)) → U8_AG(T11, T49, in_orderc1_in_ag(T48))
U8_AG(T11, T49, in_orderc1_out_ag(T97, T48)) → IN_ORDER1_IN_AG(T49)

The TRS R consists of the following rules:

appc47_in_aaag(.(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, T65)) → U12_aaag(X168, T65, appc47_in_aaag(T65))
U12_aaag(X168, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag([]) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(T11) → U13_ag(T11, appc16_in_aaag(T11))
appc16_in_aaag(.(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, T18)) → U11_aaag(X83, T18, appc16_in_aaag(T18))
U11_aaag(X83, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(T11) → U16_ag(T11, appc47_in_aaag(T11))
U16_ag(T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T98, T11, T49, in_orderc1_in_ag(T48))
U17_ag(T98, T11, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T11, in_orderc1_in_ag(T49))
U18_ag(T97, T98, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The set Q consists of the following terms:

appc47_in_aaag(x0)
U12_aaag(x0, x1, x2)
in_orderc1_in_ag(x0)
appc16_in_aaag(x0)
U11_aaag(x0, x1, x2)
U13_ag(x0, x1)
in_orderc30_in_g(x0)
U14_ag(x0, x1, x2)
U15_ag(x0, x1)
U16_ag(x0, x1)
U17_ag(x0, x1, x2, x3)
U18_ag(x0, x1, x2, x3)

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

(26) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U5_AG(T11, appc47_out_aaag(T48, T80, T49, T11)) → IN_ORDER1_IN_AG(T48)
U7_AG(T11, appc47_out_aaag(T48, T98, T49, T11)) → U8_AG(T11, T49, in_orderc1_in_ag(T48))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x1 + x2   
POL(IN_ORDER1_IN_AG(x1)) = x1   
POL(U11_aaag(x1, x2, x3)) = 0   
POL(U12_aaag(x1, x2, x3)) = 1 + x1 + x3   
POL(U13_ag(x1, x2)) = 0   
POL(U14_ag(x1, x2, x3)) = 0   
POL(U15_ag(x1, x2)) = 0   
POL(U16_ag(x1, x2)) = 0   
POL(U17_ag(x1, x2, x3, x4)) = 0   
POL(U18_ag(x1, x2, x3, x4)) = 0   
POL(U5_AG(x1, x2)) = x2   
POL(U7_AG(x1, x2)) = x2   
POL(U8_AG(x1, x2, x3)) = x2   
POL([]) = 0   
POL(appc16_in_aaag(x1)) = 0   
POL(appc16_out_aaag(x1, x2, x3, x4)) = 0   
POL(appc47_in_aaag(x1)) = x1   
POL(appc47_out_aaag(x1, x2, x3, x4)) = 1 + x1 + x3   
POL(in_orderc1_in_ag(x1)) = 0   
POL(in_orderc1_out_ag(x1, x2)) = 0   
POL(in_orderc30_in_g(x1)) = 0   
POL(in_orderc30_out_g(x1)) = 0   
POL(node(x1, x2, x3)) = 0   
POL(void) = 0   

The following usable rules [FROCOS05] were oriented:

appc47_in_aaag(.(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, T65)) → U12_aaag(X168, T65, appc47_in_aaag(T65))
U12_aaag(X168, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))

(27) Obligation:

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

IN_ORDER1_IN_AG(T11) → U5_AG(T11, appc47_in_aaag(T11))
IN_ORDER1_IN_AG(T11) → U7_AG(T11, appc47_in_aaag(T11))
U8_AG(T11, T49, in_orderc1_out_ag(T97, T48)) → IN_ORDER1_IN_AG(T49)

The TRS R consists of the following rules:

appc47_in_aaag(.(T59, X148)) → appc47_out_aaag([], T59, X148, .(T59, X148))
appc47_in_aaag(.(X168, T65)) → U12_aaag(X168, T65, appc47_in_aaag(T65))
U12_aaag(X168, T65, appc47_out_aaag(X169, T66, X170, T65)) → appc47_out_aaag(.(X168, X169), T66, X170, .(X168, T65))
in_orderc1_in_ag([]) → in_orderc1_out_ag(void, [])
in_orderc1_in_ag(T11) → U13_ag(T11, appc16_in_aaag(T11))
appc16_in_aaag(.(X60, X61)) → appc16_out_aaag([], X60, X61, .(X60, X61))
appc16_in_aaag(.(X83, T18)) → U11_aaag(X83, T18, appc16_in_aaag(T18))
U11_aaag(X83, T18, appc16_out_aaag(X84, X85, X86, T18)) → appc16_out_aaag(.(X83, X84), X85, X86, .(X83, T18))
U13_ag(T11, appc16_out_aaag(T13, T14, T15, T11)) → U14_ag(T11, T15, in_orderc30_in_g(T13))
in_orderc30_in_g([]) → in_orderc30_out_g([])
U14_ag(T11, T15, in_orderc30_out_g(T13)) → U15_ag(T11, in_orderc30_in_g(T15))
U15_ag(T11, in_orderc30_out_g(T15)) → in_orderc1_out_ag(void, T11)
in_orderc1_in_ag(T11) → U16_ag(T11, appc47_in_aaag(T11))
U16_ag(T11, appc47_out_aaag(T48, T98, T49, T11)) → U17_ag(T98, T11, T49, in_orderc1_in_ag(T48))
U17_ag(T98, T11, T49, in_orderc1_out_ag(T97, T48)) → U18_ag(T97, T98, T11, in_orderc1_in_ag(T49))
U18_ag(T97, T98, T11, in_orderc1_out_ag(T100, T49)) → in_orderc1_out_ag(node(T97, T98, T100), T11)

The set Q consists of the following terms:

appc47_in_aaag(x0)
U12_aaag(x0, x1, x2)
in_orderc1_in_ag(x0)
appc16_in_aaag(x0)
U11_aaag(x0, x1, x2)
U13_ag(x0, x1)
in_orderc30_in_g(x0)
U14_ag(x0, x1, x2)
U15_ag(x0, x1)
U16_ag(x0, x1)
U17_ag(x0, x1, x2, x3)
U18_ag(x0, x1, x2, x3)

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 3 less nodes.

(29) TRUE