(0) Obligation:

Clauses:

preorder(T, Xs) :- preorder_dl(T, -(Xs, [])).
preorder_dl(nil, -(X, X)).
preorder_dl(tree(L, X, R), -(.(X, Xs), Zs)) :- ','(preorder_dl(L, -(Xs, Ys)), preorder_dl(R, -(Ys, Zs))).

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, preorder_dlB_in_ga(T5, T7))
preorder_dlB_in_ga(nil, []) → preorder_dlB_out_ga(nil, [])
preorder_dlB_in_ga(tree(T21, T22, T23), .(T22, T25)) → U2_ga(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
pC_in_gaag(T21, T25, T28, T23) → U4_gaag(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
U4_gaag(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_gaag(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U5_gaag(T21, T25, T28, T23, preorder_dlB_out_ga(T23, T28)) → pC_out_gaag(T21, T25, T28, T23)
U2_ga(T21, T22, T23, T25, pC_out_gaag(T21, T25, X26, T23)) → preorder_dlB_out_ga(tree(T21, T22, T23), .(T22, T25))
U1_ga(T5, T7, preorder_dlB_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)
preorder_dlB_in_ga(x1, x2)  =  preorder_dlB_in_ga(x1)
nil  =  nil
preorder_dlB_out_ga(x1, x2)  =  preorder_dlB_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)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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, preorder_dlB_in_ga(T5, T7))
PREORDERA_IN_GA(T5, T7) → PREORDER_DLB_IN_GA(T5, T7)
PREORDER_DLB_IN_GA(tree(T21, T22, T23), .(T22, T25)) → U2_GA(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
PREORDER_DLB_IN_GA(tree(T21, T22, T23), .(T22, T25)) → PC_IN_GAAG(T21, T25, X26, T23)
PC_IN_GAAG(T21, T25, T28, T23) → U4_GAAG(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
PC_IN_GAAG(T21, T25, T28, T23) → PREORDER_DLD_IN_GAA(T21, T25, T28)
PREORDER_DLD_IN_GAA(tree(T44, T45, T46), .(T45, T48), X55) → U3_GAA(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
PREORDER_DLD_IN_GAA(tree(T44, T45, T46), .(T45, T48), X55) → PE_IN_GAAGA(T44, T48, X54, T46, X55)
PE_IN_GAAGA(T44, T48, T51, T46, X55) → U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
PE_IN_GAAGA(T44, T48, T51, T46, X55) → PREORDER_DLD_IN_GAA(T44, T48, T51)
U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → PREORDER_DLD_IN_GAA(T46, T51, X55)
U4_GAAG(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_GAAG(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U4_GAAG(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → PREORDER_DLB_IN_GA(T23, T28)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, preorder_dlB_in_ga(T5, T7))
preorder_dlB_in_ga(nil, []) → preorder_dlB_out_ga(nil, [])
preorder_dlB_in_ga(tree(T21, T22, T23), .(T22, T25)) → U2_ga(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
pC_in_gaag(T21, T25, T28, T23) → U4_gaag(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
U4_gaag(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_gaag(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U5_gaag(T21, T25, T28, T23, preorder_dlB_out_ga(T23, T28)) → pC_out_gaag(T21, T25, T28, T23)
U2_ga(T21, T22, T23, T25, pC_out_gaag(T21, T25, X26, T23)) → preorder_dlB_out_ga(tree(T21, T22, T23), .(T22, T25))
U1_ga(T5, T7, preorder_dlB_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)
preorder_dlB_in_ga(x1, x2)  =  preorder_dlB_in_ga(x1)
nil  =  nil
preorder_dlB_out_ga(x1, x2)  =  preorder_dlB_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)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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)
PREORDER_DLB_IN_GA(x1, x2)  =  PREORDER_DLB_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)
PREORDER_DLD_IN_GAA(x1, x2, x3)  =  PREORDER_DLD_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, preorder_dlB_in_ga(T5, T7))
PREORDERA_IN_GA(T5, T7) → PREORDER_DLB_IN_GA(T5, T7)
PREORDER_DLB_IN_GA(tree(T21, T22, T23), .(T22, T25)) → U2_GA(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
PREORDER_DLB_IN_GA(tree(T21, T22, T23), .(T22, T25)) → PC_IN_GAAG(T21, T25, X26, T23)
PC_IN_GAAG(T21, T25, T28, T23) → U4_GAAG(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
PC_IN_GAAG(T21, T25, T28, T23) → PREORDER_DLD_IN_GAA(T21, T25, T28)
PREORDER_DLD_IN_GAA(tree(T44, T45, T46), .(T45, T48), X55) → U3_GAA(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
PREORDER_DLD_IN_GAA(tree(T44, T45, T46), .(T45, T48), X55) → PE_IN_GAAGA(T44, T48, X54, T46, X55)
PE_IN_GAAGA(T44, T48, T51, T46, X55) → U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
PE_IN_GAAGA(T44, T48, T51, T46, X55) → PREORDER_DLD_IN_GAA(T44, T48, T51)
U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → PREORDER_DLD_IN_GAA(T46, T51, X55)
U4_GAAG(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_GAAG(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U4_GAAG(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → PREORDER_DLB_IN_GA(T23, T28)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, preorder_dlB_in_ga(T5, T7))
preorder_dlB_in_ga(nil, []) → preorder_dlB_out_ga(nil, [])
preorder_dlB_in_ga(tree(T21, T22, T23), .(T22, T25)) → U2_ga(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
pC_in_gaag(T21, T25, T28, T23) → U4_gaag(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
U4_gaag(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_gaag(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U5_gaag(T21, T25, T28, T23, preorder_dlB_out_ga(T23, T28)) → pC_out_gaag(T21, T25, T28, T23)
U2_ga(T21, T22, T23, T25, pC_out_gaag(T21, T25, X26, T23)) → preorder_dlB_out_ga(tree(T21, T22, T23), .(T22, T25))
U1_ga(T5, T7, preorder_dlB_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)
preorder_dlB_in_ga(x1, x2)  =  preorder_dlB_in_ga(x1)
nil  =  nil
preorder_dlB_out_ga(x1, x2)  =  preorder_dlB_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)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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)
PREORDER_DLB_IN_GA(x1, x2)  =  PREORDER_DLB_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)
PREORDER_DLD_IN_GAA(x1, x2, x3)  =  PREORDER_DLD_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:

PREORDER_DLD_IN_GAA(tree(T44, T45, T46), .(T45, T48), X55) → PE_IN_GAAGA(T44, T48, X54, T46, X55)
PE_IN_GAAGA(T44, T48, T51, T46, X55) → U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → PREORDER_DLD_IN_GAA(T46, T51, X55)
PE_IN_GAAGA(T44, T48, T51, T46, X55) → PREORDER_DLD_IN_GAA(T44, T48, T51)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, preorder_dlB_in_ga(T5, T7))
preorder_dlB_in_ga(nil, []) → preorder_dlB_out_ga(nil, [])
preorder_dlB_in_ga(tree(T21, T22, T23), .(T22, T25)) → U2_ga(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
pC_in_gaag(T21, T25, T28, T23) → U4_gaag(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
U4_gaag(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_gaag(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U5_gaag(T21, T25, T28, T23, preorder_dlB_out_ga(T23, T28)) → pC_out_gaag(T21, T25, T28, T23)
U2_ga(T21, T22, T23, T25, pC_out_gaag(T21, T25, X26, T23)) → preorder_dlB_out_ga(tree(T21, T22, T23), .(T22, T25))
U1_ga(T5, T7, preorder_dlB_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)
preorder_dlB_in_ga(x1, x2)  =  preorder_dlB_in_ga(x1)
nil  =  nil
preorder_dlB_out_ga(x1, x2)  =  preorder_dlB_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)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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)
PREORDER_DLD_IN_GAA(x1, x2, x3)  =  PREORDER_DLD_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:

PREORDER_DLD_IN_GAA(tree(T44, T45, T46), .(T45, T48), X55) → PE_IN_GAAGA(T44, T48, X54, T46, X55)
PE_IN_GAAGA(T44, T48, T51, T46, X55) → U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_GAAGA(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → PREORDER_DLD_IN_GAA(T46, T51, X55)
PE_IN_GAAGA(T44, T48, T51, T46, X55) → PREORDER_DLD_IN_GAA(T44, T48, T51)

The TRS R consists of the following rules:

preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)

The argument filtering Pi contains the following mapping:
nil  =  nil
tree(x1, x2, x3)  =  tree(x1, x2, x3)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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)
PREORDER_DLD_IN_GAA(x1, x2, x3)  =  PREORDER_DLD_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:

PREORDER_DLD_IN_GAA(tree(T44, T45, T46)) → PE_IN_GAAGA(T44, T46)
PE_IN_GAAGA(T44, T46) → U6_GAAGA(T44, T46, preorder_dlD_in_gaa(T44))
U6_GAAGA(T44, T46, preorder_dlD_out_gaa(T44)) → PREORDER_DLD_IN_GAA(T46)
PE_IN_GAAGA(T44, T46) → PREORDER_DLD_IN_GAA(T44)

The TRS R consists of the following rules:

preorder_dlD_in_gaa(nil) → preorder_dlD_out_gaa(nil)
preorder_dlD_in_gaa(tree(T44, T45, T46)) → U3_gaa(T44, T45, T46, pE_in_gaaga(T44, T46))
U3_gaa(T44, T45, T46, pE_out_gaaga(T44, T46)) → preorder_dlD_out_gaa(tree(T44, T45, T46))
pE_in_gaaga(T44, T46) → U6_gaaga(T44, T46, preorder_dlD_in_gaa(T44))
U6_gaaga(T44, T46, preorder_dlD_out_gaa(T44)) → U7_gaaga(T44, T46, preorder_dlD_in_gaa(T46))
U7_gaaga(T44, T46, preorder_dlD_out_gaa(T46)) → pE_out_gaaga(T44, T46)

The set Q consists of the following terms:

preorder_dlD_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(T44, T46) → PREORDER_DLD_IN_GAA(T44)
    The graph contains the following edges 1 >= 1

  • PE_IN_GAAGA(T44, T46) → U6_GAAGA(T44, T46, preorder_dlD_in_gaa(T44))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U6_GAAGA(T44, T46, preorder_dlD_out_gaa(T44)) → PREORDER_DLD_IN_GAA(T46)
    The graph contains the following edges 2 >= 1

  • PREORDER_DLD_IN_GAA(tree(T44, T45, T46)) → PE_IN_GAAGA(T44, T46)
    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:

PREORDER_DLB_IN_GA(tree(T21, T22, T23), .(T22, T25)) → PC_IN_GAAG(T21, T25, X26, T23)
PC_IN_GAAG(T21, T25, T28, T23) → U4_GAAG(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
U4_GAAG(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → PREORDER_DLB_IN_GA(T23, T28)

The TRS R consists of the following rules:

preorderA_in_ga(T5, T7) → U1_ga(T5, T7, preorder_dlB_in_ga(T5, T7))
preorder_dlB_in_ga(nil, []) → preorder_dlB_out_ga(nil, [])
preorder_dlB_in_ga(tree(T21, T22, T23), .(T22, T25)) → U2_ga(T21, T22, T23, T25, pC_in_gaag(T21, T25, X26, T23))
pC_in_gaag(T21, T25, T28, T23) → U4_gaag(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
U4_gaag(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → U5_gaag(T21, T25, T28, T23, preorder_dlB_in_ga(T23, T28))
U5_gaag(T21, T25, T28, T23, preorder_dlB_out_ga(T23, T28)) → pC_out_gaag(T21, T25, T28, T23)
U2_ga(T21, T22, T23, T25, pC_out_gaag(T21, T25, X26, T23)) → preorder_dlB_out_ga(tree(T21, T22, T23), .(T22, T25))
U1_ga(T5, T7, preorder_dlB_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)
preorder_dlB_in_ga(x1, x2)  =  preorder_dlB_in_ga(x1)
nil  =  nil
preorder_dlB_out_ga(x1, x2)  =  preorder_dlB_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)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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)
PREORDER_DLB_IN_GA(x1, x2)  =  PREORDER_DLB_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:

PREORDER_DLB_IN_GA(tree(T21, T22, T23), .(T22, T25)) → PC_IN_GAAG(T21, T25, X26, T23)
PC_IN_GAAG(T21, T25, T28, T23) → U4_GAAG(T21, T25, T28, T23, preorder_dlD_in_gaa(T21, T25, T28))
U4_GAAG(T21, T25, T28, T23, preorder_dlD_out_gaa(T21, T25, T28)) → PREORDER_DLB_IN_GA(T23, T28)

The TRS R consists of the following rules:

preorder_dlD_in_gaa(nil, T35, T35) → preorder_dlD_out_gaa(nil, T35, T35)
preorder_dlD_in_gaa(tree(T44, T45, T46), .(T45, T48), X55) → U3_gaa(T44, T45, T46, T48, X55, pE_in_gaaga(T44, T48, X54, T46, X55))
U3_gaa(T44, T45, T46, T48, X55, pE_out_gaaga(T44, T48, X54, T46, X55)) → preorder_dlD_out_gaa(tree(T44, T45, T46), .(T45, T48), X55)
pE_in_gaaga(T44, T48, T51, T46, X55) → U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T44, T48, T51))
U6_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T44, T48, T51)) → U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_in_gaa(T46, T51, X55))
U7_gaaga(T44, T48, T51, T46, X55, preorder_dlD_out_gaa(T46, T51, X55)) → pE_out_gaaga(T44, T48, T51, T46, X55)

The argument filtering Pi contains the following mapping:
nil  =  nil
tree(x1, x2, x3)  =  tree(x1, x2, x3)
preorder_dlD_in_gaa(x1, x2, x3)  =  preorder_dlD_in_gaa(x1)
preorder_dlD_out_gaa(x1, x2, x3)  =  preorder_dlD_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)
PREORDER_DLB_IN_GA(x1, x2)  =  PREORDER_DLB_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:

PREORDER_DLB_IN_GA(tree(T21, T22, T23)) → PC_IN_GAAG(T21, T23)
PC_IN_GAAG(T21, T23) → U4_GAAG(T21, T23, preorder_dlD_in_gaa(T21))
U4_GAAG(T21, T23, preorder_dlD_out_gaa(T21)) → PREORDER_DLB_IN_GA(T23)

The TRS R consists of the following rules:

preorder_dlD_in_gaa(nil) → preorder_dlD_out_gaa(nil)
preorder_dlD_in_gaa(tree(T44, T45, T46)) → U3_gaa(T44, T45, T46, pE_in_gaaga(T44, T46))
U3_gaa(T44, T45, T46, pE_out_gaaga(T44, T46)) → preorder_dlD_out_gaa(tree(T44, T45, T46))
pE_in_gaaga(T44, T46) → U6_gaaga(T44, T46, preorder_dlD_in_gaa(T44))
U6_gaaga(T44, T46, preorder_dlD_out_gaa(T44)) → U7_gaaga(T44, T46, preorder_dlD_in_gaa(T46))
U7_gaaga(T44, T46, preorder_dlD_out_gaa(T46)) → pE_out_gaaga(T44, T46)

The set Q consists of the following terms:

preorder_dlD_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(T21, T23) → U4_GAAG(T21, T23, preorder_dlD_in_gaa(T21))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U4_GAAG(T21, T23, preorder_dlD_out_gaa(T21)) → PREORDER_DLB_IN_GA(T23)
    The graph contains the following edges 2 >= 1

  • PREORDER_DLB_IN_GA(tree(T21, T22, T23)) → PC_IN_GAAG(T21, T23)
    The graph contains the following edges 1 > 1, 1 > 2

(20) YES