(0) Obligation:

Clauses:

preorder(X, Y) :- pdl(X, -(Y, [])).
pdl(nil, Y) :- ','(!, eq(Y, -(X, X))).
pdl(T, -(.(X, Xs), Zs)) :- ','(value(T, X), ','(left(T, L), ','(right(T, R), ','(pdl(L, -(Xs, Ys)), pdl(R, -(Ys, Zs)))))).
left(nil, nil).
left(tree(L, X1, X2), L).
right(nil, nil).
right(tree(X3, X4, R), R).
value(nil, X5).
value(tree(X6, X, X7), X).
eq(X, X).

Query: preorder(g,a)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, pdlB_in_ga(T5, T7))
pdlB_in_ga(nil, []) → pdlB_out_ga(nil, [])
pdlB_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
pC_in_gaag(T57, T37, T61, T59) → U4_gaag(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaag(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_gaag(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U5_gaag(T57, T37, T61, T59, pdlB_out_ga(T59, T61)) → pC_out_gaag(T57, T37, T61, T59)
U2_ga(T57, T58, T59, T37, pC_out_gaag(T57, T37, X37, T59)) → pdlB_out_ga(tree(T57, T58, T59), .(T58, T37))
U1_ga(T5, T7, pdlB_out_ga(T5, T7)) → preorderA_out_ga(T5, T7)

The argument filtering Pi contains the following mapping:
preorderA_in_ga(x1, x2)  =  preorderA_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pdlB_in_ga(x1, x2)  =  pdlB_in_ga(x1)
nil  =  nil
pdlB_out_ga(x1, x2)  =  pdlB_out_ga(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x1, x2, x3, x5)
pC_in_gaag(x1, x2, x3, x4)  =  pC_in_gaag(x1, x4)
U4_gaag(x1, x2, x3, x4, x5)  =  U4_gaag(x1, x4, x5)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
U5_gaag(x1, x2, x3, x4, x5)  =  U5_gaag(x1, x4, x5)
pC_out_gaag(x1, x2, x3, x4)  =  pC_out_gaag(x1, x4)
preorderA_out_ga(x1, x2)  =  preorderA_out_ga(x1)

(3) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

PREORDERA_IN_GA(T5, T7) → U1_GA(T5, T7, pdlB_in_ga(T5, T7))
PREORDERA_IN_GA(T5, T7) → PDLB_IN_GA(T5, T7)
PDLB_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U2_GA(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
PDLB_IN_GA(tree(T57, T58, T59), .(T58, T37)) → PC_IN_GAAG(T57, T37, X37, T59)
PC_IN_GAAG(T57, T37, T61, T59) → U4_GAAG(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
PC_IN_GAAG(T57, T37, T61, T59) → PDLD_IN_GAA(T57, T37, T61)
PDLD_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U3_GAA(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
PDLD_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PE_IN_GAAGA(T112, T92, X120, T114, X121)
PE_IN_GAAGA(T112, T92, T116, T114, X121) → U6_GAAGA(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
PE_IN_GAAGA(T112, T92, T116, T114, X121) → PDLD_IN_GAA(T112, T92, T116)
U6_GAAGA(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_GAAGA(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U6_GAAGA(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → PDLD_IN_GAA(T114, T116, X121)
U4_GAAG(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_GAAG(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U4_GAAG(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → PDLB_IN_GA(T59, T61)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, pdlB_in_ga(T5, T7))
pdlB_in_ga(nil, []) → pdlB_out_ga(nil, [])
pdlB_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
pC_in_gaag(T57, T37, T61, T59) → U4_gaag(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaag(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_gaag(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U5_gaag(T57, T37, T61, T59, pdlB_out_ga(T59, T61)) → pC_out_gaag(T57, T37, T61, T59)
U2_ga(T57, T58, T59, T37, pC_out_gaag(T57, T37, X37, T59)) → pdlB_out_ga(tree(T57, T58, T59), .(T58, T37))
U1_ga(T5, T7, pdlB_out_ga(T5, T7)) → preorderA_out_ga(T5, T7)

The argument filtering Pi contains the following mapping:
preorderA_in_ga(x1, x2)  =  preorderA_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pdlB_in_ga(x1, x2)  =  pdlB_in_ga(x1)
nil  =  nil
pdlB_out_ga(x1, x2)  =  pdlB_out_ga(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x1, x2, x3, x5)
pC_in_gaag(x1, x2, x3, x4)  =  pC_in_gaag(x1, x4)
U4_gaag(x1, x2, x3, x4, x5)  =  U4_gaag(x1, x4, x5)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
U5_gaag(x1, x2, x3, x4, x5)  =  U5_gaag(x1, x4, x5)
pC_out_gaag(x1, x2, x3, x4)  =  pC_out_gaag(x1, x4)
preorderA_out_ga(x1, x2)  =  preorderA_out_ga(x1)
PREORDERA_IN_GA(x1, x2)  =  PREORDERA_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
PDLB_IN_GA(x1, x2)  =  PDLB_IN_GA(x1)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x1, x2, x3, x5)
PC_IN_GAAG(x1, x2, x3, x4)  =  PC_IN_GAAG(x1, x4)
U4_GAAG(x1, x2, x3, x4, x5)  =  U4_GAAG(x1, x4, x5)
PDLD_IN_GAA(x1, x2, x3)  =  PDLD_IN_GAA(x1)
U3_GAA(x1, x2, x3, x4, x5, x6)  =  U3_GAA(x1, x2, x3, x6)
PE_IN_GAAGA(x1, x2, x3, x4, x5)  =  PE_IN_GAAGA(x1, x4)
U6_GAAGA(x1, x2, x3, x4, x5, x6)  =  U6_GAAGA(x1, x4, x6)
U7_GAAGA(x1, x2, x3, x4, x5, x6)  =  U7_GAAGA(x1, x4, x6)
U5_GAAG(x1, x2, x3, x4, x5)  =  U5_GAAG(x1, x4, x5)

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

(4) Obligation:

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

PREORDERA_IN_GA(T5, T7) → U1_GA(T5, T7, pdlB_in_ga(T5, T7))
PREORDERA_IN_GA(T5, T7) → PDLB_IN_GA(T5, T7)
PDLB_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U2_GA(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
PDLB_IN_GA(tree(T57, T58, T59), .(T58, T37)) → PC_IN_GAAG(T57, T37, X37, T59)
PC_IN_GAAG(T57, T37, T61, T59) → U4_GAAG(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
PC_IN_GAAG(T57, T37, T61, T59) → PDLD_IN_GAA(T57, T37, T61)
PDLD_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U3_GAA(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
PDLD_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PE_IN_GAAGA(T112, T92, X120, T114, X121)
PE_IN_GAAGA(T112, T92, T116, T114, X121) → U6_GAAGA(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
PE_IN_GAAGA(T112, T92, T116, T114, X121) → PDLD_IN_GAA(T112, T92, T116)
U6_GAAGA(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_GAAGA(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U6_GAAGA(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → PDLD_IN_GAA(T114, T116, X121)
U4_GAAG(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_GAAG(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U4_GAAG(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → PDLB_IN_GA(T59, T61)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, pdlB_in_ga(T5, T7))
pdlB_in_ga(nil, []) → pdlB_out_ga(nil, [])
pdlB_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
pC_in_gaag(T57, T37, T61, T59) → U4_gaag(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaag(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_gaag(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U5_gaag(T57, T37, T61, T59, pdlB_out_ga(T59, T61)) → pC_out_gaag(T57, T37, T61, T59)
U2_ga(T57, T58, T59, T37, pC_out_gaag(T57, T37, X37, T59)) → pdlB_out_ga(tree(T57, T58, T59), .(T58, T37))
U1_ga(T5, T7, pdlB_out_ga(T5, T7)) → preorderA_out_ga(T5, T7)

The argument filtering Pi contains the following mapping:
preorderA_in_ga(x1, x2)  =  preorderA_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pdlB_in_ga(x1, x2)  =  pdlB_in_ga(x1)
nil  =  nil
pdlB_out_ga(x1, x2)  =  pdlB_out_ga(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x1, x2, x3, x5)
pC_in_gaag(x1, x2, x3, x4)  =  pC_in_gaag(x1, x4)
U4_gaag(x1, x2, x3, x4, x5)  =  U4_gaag(x1, x4, x5)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
U5_gaag(x1, x2, x3, x4, x5)  =  U5_gaag(x1, x4, x5)
pC_out_gaag(x1, x2, x3, x4)  =  pC_out_gaag(x1, x4)
preorderA_out_ga(x1, x2)  =  preorderA_out_ga(x1)
PREORDERA_IN_GA(x1, x2)  =  PREORDERA_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
PDLB_IN_GA(x1, x2)  =  PDLB_IN_GA(x1)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x1, x2, x3, x5)
PC_IN_GAAG(x1, x2, x3, x4)  =  PC_IN_GAAG(x1, x4)
U4_GAAG(x1, x2, x3, x4, x5)  =  U4_GAAG(x1, x4, x5)
PDLD_IN_GAA(x1, x2, x3)  =  PDLD_IN_GAA(x1)
U3_GAA(x1, x2, x3, x4, x5, x6)  =  U3_GAA(x1, x2, x3, x6)
PE_IN_GAAGA(x1, x2, x3, x4, x5)  =  PE_IN_GAAGA(x1, x4)
U6_GAAGA(x1, x2, x3, x4, x5, x6)  =  U6_GAAGA(x1, x4, x6)
U7_GAAGA(x1, x2, x3, x4, x5, x6)  =  U7_GAAGA(x1, x4, x6)
U5_GAAG(x1, x2, x3, x4, x5)  =  U5_GAAG(x1, x4, x5)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

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

(6) Complex Obligation (AND)

(7) Obligation:

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

PDLD_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PE_IN_GAAGA(T112, T92, X120, T114, X121)
PE_IN_GAAGA(T112, T92, T116, T114, X121) → U6_GAAGA(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_GAAGA(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → PDLD_IN_GAA(T114, T116, X121)
PE_IN_GAAGA(T112, T92, T116, T114, X121) → PDLD_IN_GAA(T112, T92, T116)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, pdlB_in_ga(T5, T7))
pdlB_in_ga(nil, []) → pdlB_out_ga(nil, [])
pdlB_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
pC_in_gaag(T57, T37, T61, T59) → U4_gaag(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaag(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_gaag(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U5_gaag(T57, T37, T61, T59, pdlB_out_ga(T59, T61)) → pC_out_gaag(T57, T37, T61, T59)
U2_ga(T57, T58, T59, T37, pC_out_gaag(T57, T37, X37, T59)) → pdlB_out_ga(tree(T57, T58, T59), .(T58, T37))
U1_ga(T5, T7, pdlB_out_ga(T5, T7)) → preorderA_out_ga(T5, T7)

The argument filtering Pi contains the following mapping:
preorderA_in_ga(x1, x2)  =  preorderA_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pdlB_in_ga(x1, x2)  =  pdlB_in_ga(x1)
nil  =  nil
pdlB_out_ga(x1, x2)  =  pdlB_out_ga(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x1, x2, x3, x5)
pC_in_gaag(x1, x2, x3, x4)  =  pC_in_gaag(x1, x4)
U4_gaag(x1, x2, x3, x4, x5)  =  U4_gaag(x1, x4, x5)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
U5_gaag(x1, x2, x3, x4, x5)  =  U5_gaag(x1, x4, x5)
pC_out_gaag(x1, x2, x3, x4)  =  pC_out_gaag(x1, x4)
preorderA_out_ga(x1, x2)  =  preorderA_out_ga(x1)
PDLD_IN_GAA(x1, x2, x3)  =  PDLD_IN_GAA(x1)
PE_IN_GAAGA(x1, x2, x3, x4, x5)  =  PE_IN_GAAGA(x1, x4)
U6_GAAGA(x1, x2, x3, x4, x5, x6)  =  U6_GAAGA(x1, x4, x6)

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:

PDLD_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PE_IN_GAAGA(T112, T92, X120, T114, X121)
PE_IN_GAAGA(T112, T92, T116, T114, X121) → U6_GAAGA(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_GAAGA(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → PDLD_IN_GAA(T114, T116, X121)
PE_IN_GAAGA(T112, T92, T116, T114, X121) → PDLD_IN_GAA(T112, T92, T116)

The TRS R consists of the following rules:

pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)

The argument filtering Pi contains the following mapping:
nil  =  nil
tree(x1, x2, x3)  =  tree(x1, x2, x3)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
PDLD_IN_GAA(x1, x2, x3)  =  PDLD_IN_GAA(x1)
PE_IN_GAAGA(x1, x2, x3, x4, x5)  =  PE_IN_GAAGA(x1, x4)
U6_GAAGA(x1, x2, x3, x4, x5, x6)  =  U6_GAAGA(x1, x4, x6)

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

(10) PiDPToQDPProof (SOUND 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:

PDLD_IN_GAA(tree(T112, T113, T114)) → PE_IN_GAAGA(T112, T114)
PE_IN_GAAGA(T112, T114) → U6_GAAGA(T112, T114, pdlD_in_gaa(T112))
U6_GAAGA(T112, T114, pdlD_out_gaa(T112)) → PDLD_IN_GAA(T114)
PE_IN_GAAGA(T112, T114) → PDLD_IN_GAA(T112)

The TRS R consists of the following rules:

pdlD_in_gaa(nil) → pdlD_out_gaa(nil)
pdlD_in_gaa(tree(T112, T113, T114)) → U3_gaa(T112, T113, T114, pE_in_gaaga(T112, T114))
U3_gaa(T112, T113, T114, pE_out_gaaga(T112, T114)) → pdlD_out_gaa(tree(T112, T113, T114))
pE_in_gaaga(T112, T114) → U6_gaaga(T112, T114, pdlD_in_gaa(T112))
U6_gaaga(T112, T114, pdlD_out_gaa(T112)) → U7_gaaga(T112, T114, pdlD_in_gaa(T114))
U7_gaaga(T112, T114, pdlD_out_gaa(T114)) → pE_out_gaaga(T112, T114)

The set Q consists of the following terms:

pdlD_in_gaa(x0)
U3_gaa(x0, x1, x2, x3)
pE_in_gaaga(x0, x1)
U6_gaaga(x0, x1, x2)
U7_gaaga(x0, x1, x2)

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:

  • PE_IN_GAAGA(T112, T114) → PDLD_IN_GAA(T112)
    The graph contains the following edges 1 >= 1

  • PE_IN_GAAGA(T112, T114) → U6_GAAGA(T112, T114, pdlD_in_gaa(T112))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U6_GAAGA(T112, T114, pdlD_out_gaa(T112)) → PDLD_IN_GAA(T114)
    The graph contains the following edges 2 >= 1

  • PDLD_IN_GAA(tree(T112, T113, T114)) → PE_IN_GAAGA(T112, T114)
    The graph contains the following edges 1 > 1, 1 > 2

(13) YES

(14) Obligation:

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

PDLB_IN_GA(tree(T57, T58, T59), .(T58, T37)) → PC_IN_GAAG(T57, T37, X37, T59)
PC_IN_GAAG(T57, T37, T61, T59) → U4_GAAG(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
U4_GAAG(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → PDLB_IN_GA(T59, T61)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, pdlB_in_ga(T5, T7))
pdlB_in_ga(nil, []) → pdlB_out_ga(nil, [])
pdlB_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pC_in_gaag(T57, T37, X37, T59))
pC_in_gaag(T57, T37, T61, T59) → U4_gaag(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaag(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → U5_gaag(T57, T37, T61, T59, pdlB_in_ga(T59, T61))
U5_gaag(T57, T37, T61, T59, pdlB_out_ga(T59, T61)) → pC_out_gaag(T57, T37, T61, T59)
U2_ga(T57, T58, T59, T37, pC_out_gaag(T57, T37, X37, T59)) → pdlB_out_ga(tree(T57, T58, T59), .(T58, T37))
U1_ga(T5, T7, pdlB_out_ga(T5, T7)) → preorderA_out_ga(T5, T7)

The argument filtering Pi contains the following mapping:
preorderA_in_ga(x1, x2)  =  preorderA_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pdlB_in_ga(x1, x2)  =  pdlB_in_ga(x1)
nil  =  nil
pdlB_out_ga(x1, x2)  =  pdlB_out_ga(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x1, x2, x3, x5)
pC_in_gaag(x1, x2, x3, x4)  =  pC_in_gaag(x1, x4)
U4_gaag(x1, x2, x3, x4, x5)  =  U4_gaag(x1, x4, x5)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
U5_gaag(x1, x2, x3, x4, x5)  =  U5_gaag(x1, x4, x5)
pC_out_gaag(x1, x2, x3, x4)  =  pC_out_gaag(x1, x4)
preorderA_out_ga(x1, x2)  =  preorderA_out_ga(x1)
PDLB_IN_GA(x1, x2)  =  PDLB_IN_GA(x1)
PC_IN_GAAG(x1, x2, x3, x4)  =  PC_IN_GAAG(x1, x4)
U4_GAAG(x1, x2, x3, x4, x5)  =  U4_GAAG(x1, x4, x5)

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:

PDLB_IN_GA(tree(T57, T58, T59), .(T58, T37)) → PC_IN_GAAG(T57, T37, X37, T59)
PC_IN_GAAG(T57, T37, T61, T59) → U4_GAAG(T57, T37, T61, T59, pdlD_in_gaa(T57, T37, T61))
U4_GAAG(T57, T37, T61, T59, pdlD_out_gaa(T57, T37, T61)) → PDLB_IN_GA(T59, T61)

The TRS R consists of the following rules:

pdlD_in_gaa(nil, T69, T69) → pdlD_out_gaa(nil, T69, T69)
pdlD_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U3_gaa(T112, T113, T114, T92, X121, pE_in_gaaga(T112, T92, X120, T114, X121))
U3_gaa(T112, T113, T114, T92, X121, pE_out_gaaga(T112, T92, X120, T114, X121)) → pdlD_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
pE_in_gaaga(T112, T92, T116, T114, X121) → U6_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T112, T92, T116))
U6_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T112, T92, T116)) → U7_gaaga(T112, T92, T116, T114, X121, pdlD_in_gaa(T114, T116, X121))
U7_gaaga(T112, T92, T116, T114, X121, pdlD_out_gaa(T114, T116, X121)) → pE_out_gaaga(T112, T92, T116, T114, X121)

The argument filtering Pi contains the following mapping:
nil  =  nil
tree(x1, x2, x3)  =  tree(x1, x2, x3)
pdlD_in_gaa(x1, x2, x3)  =  pdlD_in_gaa(x1)
pdlD_out_gaa(x1, x2, x3)  =  pdlD_out_gaa(x1)
U3_gaa(x1, x2, x3, x4, x5, x6)  =  U3_gaa(x1, x2, x3, x6)
pE_in_gaaga(x1, x2, x3, x4, x5)  =  pE_in_gaaga(x1, x4)
U6_gaaga(x1, x2, x3, x4, x5, x6)  =  U6_gaaga(x1, x4, x6)
U7_gaaga(x1, x2, x3, x4, x5, x6)  =  U7_gaaga(x1, x4, x6)
pE_out_gaaga(x1, x2, x3, x4, x5)  =  pE_out_gaaga(x1, x4)
PDLB_IN_GA(x1, x2)  =  PDLB_IN_GA(x1)
PC_IN_GAAG(x1, x2, x3, x4)  =  PC_IN_GAAG(x1, x4)
U4_GAAG(x1, x2, x3, x4, x5)  =  U4_GAAG(x1, x4, x5)

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

(17) PiDPToQDPProof (SOUND 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:

PDLB_IN_GA(tree(T57, T58, T59)) → PC_IN_GAAG(T57, T59)
PC_IN_GAAG(T57, T59) → U4_GAAG(T57, T59, pdlD_in_gaa(T57))
U4_GAAG(T57, T59, pdlD_out_gaa(T57)) → PDLB_IN_GA(T59)

The TRS R consists of the following rules:

pdlD_in_gaa(nil) → pdlD_out_gaa(nil)
pdlD_in_gaa(tree(T112, T113, T114)) → U3_gaa(T112, T113, T114, pE_in_gaaga(T112, T114))
U3_gaa(T112, T113, T114, pE_out_gaaga(T112, T114)) → pdlD_out_gaa(tree(T112, T113, T114))
pE_in_gaaga(T112, T114) → U6_gaaga(T112, T114, pdlD_in_gaa(T112))
U6_gaaga(T112, T114, pdlD_out_gaa(T112)) → U7_gaaga(T112, T114, pdlD_in_gaa(T114))
U7_gaaga(T112, T114, pdlD_out_gaa(T114)) → pE_out_gaaga(T112, T114)

The set Q consists of the following terms:

pdlD_in_gaa(x0)
U3_gaa(x0, x1, x2, x3)
pE_in_gaaga(x0, x1)
U6_gaaga(x0, x1, x2)
U7_gaaga(x0, x1, x2)

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:

  • PC_IN_GAAG(T57, T59) → U4_GAAG(T57, T59, pdlD_in_gaa(T57))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U4_GAAG(T57, T59, pdlD_out_gaa(T57)) → PDLB_IN_GA(T59)
    The graph contains the following edges 2 >= 1

  • PDLB_IN_GA(tree(T57, T58, T59)) → PC_IN_GAAG(T57, T59)
    The graph contains the following edges 1 > 1, 1 > 2

(20) YES