(0) Obligation:

Clauses:

tree(nil).
tree(node(L, X, R)) :- ','(tree(L), tree(R)).
s2t(s(X), node(T, Y, T)) :- s2t(X, T).
s2t(s(X), node(nil, Y, T)) :- s2t(X, T).
s2t(s(X), node(T, Y, nil)) :- s2t(X, T).
s2t(s(X), node(nil, Y, nil)).
s2t(0, nil).
goal(X) :- ','(s2t(X, T), tree(T)).

Query: goal(g)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

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

goalA_in_g(s(T8)) → U1_g(T8, pB_in_gaa(T8, X27, X28))
pB_in_gaa(T8, T10, X28) → U11_gaa(T8, T10, X28, s2tG_in_ga(T8, T10))
s2tG_in_ga(s(T16), node(X62, X63, X62)) → U6_ga(T16, X62, X63, s2tG_in_ga(T16, X62))
s2tG_in_ga(s(T22), node(nil, X92, X93)) → U7_ga(T22, X92, X93, s2tG_in_ga(T22, X93))
s2tG_in_ga(s(T28), node(X122, X123, nil)) → U8_ga(T28, X122, X123, s2tG_in_ga(T28, X122))
s2tG_in_ga(s(T34), node(nil, X143, nil)) → s2tG_out_ga(s(T34), node(nil, X143, nil))
s2tG_in_ga(0, nil) → s2tG_out_ga(0, nil)
U8_ga(T28, X122, X123, s2tG_out_ga(T28, X122)) → s2tG_out_ga(s(T28), node(X122, X123, nil))
U7_ga(T22, X92, X93, s2tG_out_ga(T22, X93)) → s2tG_out_ga(s(T22), node(nil, X92, X93))
U6_ga(T16, X62, X63, s2tG_out_ga(T16, X62)) → s2tG_out_ga(s(T16), node(X62, X63, X62))
U11_gaa(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_gaa(T8, T10, X28, treeJ_in_ga(T10, X28))
treeJ_in_ga(T39, X155) → U10_ga(T39, X155, pK_in_g(T39))
pK_in_g(T40) → U13_g(T40, treeH_in_g(T40))
treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T48, T51)) → U9_g(T50, T48, T51, pI_in_gg(T50, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)
U9_g(T50, T48, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T48, T51))
U13_g(T40, treeH_out_g(T40)) → U14_g(T40, treeH_in_g(T40))
U14_g(T40, treeH_out_g(T40)) → pK_out_g(T40)
U10_ga(T39, X155, pK_out_g(T39)) → treeJ_out_ga(T39, X155)
U12_gaa(T8, T10, X28, treeJ_out_ga(T10, X28)) → pB_out_gaa(T8, T10, X28)
U1_g(T8, pB_out_gaa(T8, X27, X28)) → goalA_out_g(s(T8))
goalA_in_g(s(T57)) → U2_g(T57, pC_in_gaa(T57, X189, X188))
pC_in_gaa(T57, T59, X188) → U17_gaa(T57, T59, X188, s2tG_in_ga(T57, T59))
U17_gaa(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_gaa(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U18_gaa(T57, T59, X188, treeH_out_g(node(nil, X188, T59))) → pC_out_gaa(T57, T59, X188)
U2_g(T57, pC_out_gaa(T57, X189, X188)) → goalA_out_g(s(T57))
goalA_in_g(s(T65)) → U3_g(T65, pD_in_gaa(T65, X223, X224))
pD_in_gaa(T65, T67, X224) → U19_gaa(T65, T67, X224, s2tG_in_ga(T65, T67))
U19_gaa(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_gaa(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U20_gaa(T65, T67, X224, treeH_out_g(node(T67, X224, nil))) → pD_out_gaa(T65, T67, X224)
U3_g(T65, pD_out_gaa(T65, X223, X224)) → goalA_out_g(s(T65))
goalA_in_g(s(T73)) → U4_g(T73, pE_in_)
pE_in_U21_(treeF_in_)
treeF_in_treeF_out_
U21_(treeF_out_) → U22_(treeF_in_)
U22_(treeF_out_) → pE_out_
U4_g(T73, pE_out_) → goalA_out_g(s(T73))
goalA_in_g(0) → U5_g(treeF_in_)
U5_g(treeF_out_) → goalA_out_g(0)

The argument filtering Pi contains the following mapping:
goalA_in_g(x1)  =  goalA_in_g(x1)
s(x1)  =  s(x1)
U1_g(x1, x2)  =  U1_g(x1, x2)
pB_in_gaa(x1, x2, x3)  =  pB_in_gaa(x1)
U11_gaa(x1, x2, x3, x4)  =  U11_gaa(x1, x4)
s2tG_in_ga(x1, x2)  =  s2tG_in_ga(x1)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x1, x4)
U7_ga(x1, x2, x3, x4)  =  U7_ga(x1, x4)
U8_ga(x1, x2, x3, x4)  =  U8_ga(x1, x4)
s2tG_out_ga(x1, x2)  =  s2tG_out_ga(x1, x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
U12_gaa(x1, x2, x3, x4)  =  U12_gaa(x1, x2, x4)
treeJ_in_ga(x1, x2)  =  treeJ_in_ga(x1)
U10_ga(x1, x2, x3)  =  U10_ga(x1, x3)
pK_in_g(x1)  =  pK_in_g(x1)
U13_g(x1, x2)  =  U13_g(x1, x2)
treeH_in_g(x1)  =  treeH_in_g(x1)
nil  =  nil
treeH_out_g(x1)  =  treeH_out_g(x1)
U9_g(x1, x2, x3, x4)  =  U9_g(x1, x3, x4)
pI_in_gg(x1, x2)  =  pI_in_gg(x1, x2)
U15_gg(x1, x2, x3)  =  U15_gg(x1, x2, x3)
U16_gg(x1, x2, x3)  =  U16_gg(x1, x2, x3)
pI_out_gg(x1, x2)  =  pI_out_gg(x1, x2)
U14_g(x1, x2)  =  U14_g(x1, x2)
pK_out_g(x1)  =  pK_out_g(x1)
treeJ_out_ga(x1, x2)  =  treeJ_out_ga(x1)
pB_out_gaa(x1, x2, x3)  =  pB_out_gaa(x1, x2)
goalA_out_g(x1)  =  goalA_out_g(x1)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaa(x1, x2, x3)  =  pC_in_gaa(x1)
U17_gaa(x1, x2, x3, x4)  =  U17_gaa(x1, x4)
U18_gaa(x1, x2, x3, x4)  =  U18_gaa(x1, x2, x4)
pC_out_gaa(x1, x2, x3)  =  pC_out_gaa(x1, x2)
U3_g(x1, x2)  =  U3_g(x1, x2)
pD_in_gaa(x1, x2, x3)  =  pD_in_gaa(x1)
U19_gaa(x1, x2, x3, x4)  =  U19_gaa(x1, x4)
U20_gaa(x1, x2, x3, x4)  =  U20_gaa(x1, x2, x4)
pD_out_gaa(x1, x2, x3)  =  pD_out_gaa(x1, x2)
U4_g(x1, x2)  =  U4_g(x1, x2)
pE_in_  =  pE_in_
U21_(x1)  =  U21_(x1)
treeF_in_  =  treeF_in_
treeF_out_  =  treeF_out_
U22_(x1)  =  U22_(x1)
pE_out_  =  pE_out_
U5_g(x1)  =  U5_g(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:

GOALA_IN_G(s(T8)) → U1_G(T8, pB_in_gaa(T8, X27, X28))
GOALA_IN_G(s(T8)) → PB_IN_GAA(T8, X27, X28)
PB_IN_GAA(T8, T10, X28) → U11_GAA(T8, T10, X28, s2tG_in_ga(T8, T10))
PB_IN_GAA(T8, T10, X28) → S2TG_IN_GA(T8, T10)
S2TG_IN_GA(s(T16), node(X62, X63, X62)) → U6_GA(T16, X62, X63, s2tG_in_ga(T16, X62))
S2TG_IN_GA(s(T16), node(X62, X63, X62)) → S2TG_IN_GA(T16, X62)
S2TG_IN_GA(s(T22), node(nil, X92, X93)) → U7_GA(T22, X92, X93, s2tG_in_ga(T22, X93))
S2TG_IN_GA(s(T22), node(nil, X92, X93)) → S2TG_IN_GA(T22, X93)
S2TG_IN_GA(s(T28), node(X122, X123, nil)) → U8_GA(T28, X122, X123, s2tG_in_ga(T28, X122))
S2TG_IN_GA(s(T28), node(X122, X123, nil)) → S2TG_IN_GA(T28, X122)
U11_GAA(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_GAA(T8, T10, X28, treeJ_in_ga(T10, X28))
U11_GAA(T8, T10, X28, s2tG_out_ga(T8, T10)) → TREEJ_IN_GA(T10, X28)
TREEJ_IN_GA(T39, X155) → U10_GA(T39, X155, pK_in_g(T39))
TREEJ_IN_GA(T39, X155) → PK_IN_G(T39)
PK_IN_G(T40) → U13_G(T40, treeH_in_g(T40))
PK_IN_G(T40) → TREEH_IN_G(T40)
TREEH_IN_G(node(T50, T48, T51)) → U9_G(T50, T48, T51, pI_in_gg(T50, T51))
TREEH_IN_G(node(T50, T48, T51)) → PI_IN_GG(T50, T51)
PI_IN_GG(T50, T52) → U15_GG(T50, T52, treeH_in_g(T50))
PI_IN_GG(T50, T52) → TREEH_IN_G(T50)
U15_GG(T50, T52, treeH_out_g(T50)) → U16_GG(T50, T52, treeH_in_g(T52))
U15_GG(T50, T52, treeH_out_g(T50)) → TREEH_IN_G(T52)
U13_G(T40, treeH_out_g(T40)) → U14_G(T40, treeH_in_g(T40))
U13_G(T40, treeH_out_g(T40)) → TREEH_IN_G(T40)
GOALA_IN_G(s(T57)) → U2_G(T57, pC_in_gaa(T57, X189, X188))
GOALA_IN_G(s(T57)) → PC_IN_GAA(T57, X189, X188)
PC_IN_GAA(T57, T59, X188) → U17_GAA(T57, T59, X188, s2tG_in_ga(T57, T59))
PC_IN_GAA(T57, T59, X188) → S2TG_IN_GA(T57, T59)
U17_GAA(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_GAA(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U17_GAA(T57, T59, X188, s2tG_out_ga(T57, T59)) → TREEH_IN_G(node(nil, X188, T59))
GOALA_IN_G(s(T65)) → U3_G(T65, pD_in_gaa(T65, X223, X224))
GOALA_IN_G(s(T65)) → PD_IN_GAA(T65, X223, X224)
PD_IN_GAA(T65, T67, X224) → U19_GAA(T65, T67, X224, s2tG_in_ga(T65, T67))
PD_IN_GAA(T65, T67, X224) → S2TG_IN_GA(T65, T67)
U19_GAA(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_GAA(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U19_GAA(T65, T67, X224, s2tG_out_ga(T65, T67)) → TREEH_IN_G(node(T67, X224, nil))
GOALA_IN_G(s(T73)) → U4_G(T73, pE_in_)
GOALA_IN_G(s(T73)) → PE_IN_
PE_IN_U21_1(treeF_in_)
PE_IN_TREEF_IN_
U21_1(treeF_out_) → U22_1(treeF_in_)
U21_1(treeF_out_) → TREEF_IN_
GOALA_IN_G(0) → U5_G(treeF_in_)
GOALA_IN_G(0) → TREEF_IN_

The TRS R consists of the following rules:

goalA_in_g(s(T8)) → U1_g(T8, pB_in_gaa(T8, X27, X28))
pB_in_gaa(T8, T10, X28) → U11_gaa(T8, T10, X28, s2tG_in_ga(T8, T10))
s2tG_in_ga(s(T16), node(X62, X63, X62)) → U6_ga(T16, X62, X63, s2tG_in_ga(T16, X62))
s2tG_in_ga(s(T22), node(nil, X92, X93)) → U7_ga(T22, X92, X93, s2tG_in_ga(T22, X93))
s2tG_in_ga(s(T28), node(X122, X123, nil)) → U8_ga(T28, X122, X123, s2tG_in_ga(T28, X122))
s2tG_in_ga(s(T34), node(nil, X143, nil)) → s2tG_out_ga(s(T34), node(nil, X143, nil))
s2tG_in_ga(0, nil) → s2tG_out_ga(0, nil)
U8_ga(T28, X122, X123, s2tG_out_ga(T28, X122)) → s2tG_out_ga(s(T28), node(X122, X123, nil))
U7_ga(T22, X92, X93, s2tG_out_ga(T22, X93)) → s2tG_out_ga(s(T22), node(nil, X92, X93))
U6_ga(T16, X62, X63, s2tG_out_ga(T16, X62)) → s2tG_out_ga(s(T16), node(X62, X63, X62))
U11_gaa(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_gaa(T8, T10, X28, treeJ_in_ga(T10, X28))
treeJ_in_ga(T39, X155) → U10_ga(T39, X155, pK_in_g(T39))
pK_in_g(T40) → U13_g(T40, treeH_in_g(T40))
treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T48, T51)) → U9_g(T50, T48, T51, pI_in_gg(T50, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)
U9_g(T50, T48, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T48, T51))
U13_g(T40, treeH_out_g(T40)) → U14_g(T40, treeH_in_g(T40))
U14_g(T40, treeH_out_g(T40)) → pK_out_g(T40)
U10_ga(T39, X155, pK_out_g(T39)) → treeJ_out_ga(T39, X155)
U12_gaa(T8, T10, X28, treeJ_out_ga(T10, X28)) → pB_out_gaa(T8, T10, X28)
U1_g(T8, pB_out_gaa(T8, X27, X28)) → goalA_out_g(s(T8))
goalA_in_g(s(T57)) → U2_g(T57, pC_in_gaa(T57, X189, X188))
pC_in_gaa(T57, T59, X188) → U17_gaa(T57, T59, X188, s2tG_in_ga(T57, T59))
U17_gaa(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_gaa(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U18_gaa(T57, T59, X188, treeH_out_g(node(nil, X188, T59))) → pC_out_gaa(T57, T59, X188)
U2_g(T57, pC_out_gaa(T57, X189, X188)) → goalA_out_g(s(T57))
goalA_in_g(s(T65)) → U3_g(T65, pD_in_gaa(T65, X223, X224))
pD_in_gaa(T65, T67, X224) → U19_gaa(T65, T67, X224, s2tG_in_ga(T65, T67))
U19_gaa(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_gaa(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U20_gaa(T65, T67, X224, treeH_out_g(node(T67, X224, nil))) → pD_out_gaa(T65, T67, X224)
U3_g(T65, pD_out_gaa(T65, X223, X224)) → goalA_out_g(s(T65))
goalA_in_g(s(T73)) → U4_g(T73, pE_in_)
pE_in_U21_(treeF_in_)
treeF_in_treeF_out_
U21_(treeF_out_) → U22_(treeF_in_)
U22_(treeF_out_) → pE_out_
U4_g(T73, pE_out_) → goalA_out_g(s(T73))
goalA_in_g(0) → U5_g(treeF_in_)
U5_g(treeF_out_) → goalA_out_g(0)

The argument filtering Pi contains the following mapping:
goalA_in_g(x1)  =  goalA_in_g(x1)
s(x1)  =  s(x1)
U1_g(x1, x2)  =  U1_g(x1, x2)
pB_in_gaa(x1, x2, x3)  =  pB_in_gaa(x1)
U11_gaa(x1, x2, x3, x4)  =  U11_gaa(x1, x4)
s2tG_in_ga(x1, x2)  =  s2tG_in_ga(x1)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x1, x4)
U7_ga(x1, x2, x3, x4)  =  U7_ga(x1, x4)
U8_ga(x1, x2, x3, x4)  =  U8_ga(x1, x4)
s2tG_out_ga(x1, x2)  =  s2tG_out_ga(x1, x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
U12_gaa(x1, x2, x3, x4)  =  U12_gaa(x1, x2, x4)
treeJ_in_ga(x1, x2)  =  treeJ_in_ga(x1)
U10_ga(x1, x2, x3)  =  U10_ga(x1, x3)
pK_in_g(x1)  =  pK_in_g(x1)
U13_g(x1, x2)  =  U13_g(x1, x2)
treeH_in_g(x1)  =  treeH_in_g(x1)
nil  =  nil
treeH_out_g(x1)  =  treeH_out_g(x1)
U9_g(x1, x2, x3, x4)  =  U9_g(x1, x3, x4)
pI_in_gg(x1, x2)  =  pI_in_gg(x1, x2)
U15_gg(x1, x2, x3)  =  U15_gg(x1, x2, x3)
U16_gg(x1, x2, x3)  =  U16_gg(x1, x2, x3)
pI_out_gg(x1, x2)  =  pI_out_gg(x1, x2)
U14_g(x1, x2)  =  U14_g(x1, x2)
pK_out_g(x1)  =  pK_out_g(x1)
treeJ_out_ga(x1, x2)  =  treeJ_out_ga(x1)
pB_out_gaa(x1, x2, x3)  =  pB_out_gaa(x1, x2)
goalA_out_g(x1)  =  goalA_out_g(x1)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaa(x1, x2, x3)  =  pC_in_gaa(x1)
U17_gaa(x1, x2, x3, x4)  =  U17_gaa(x1, x4)
U18_gaa(x1, x2, x3, x4)  =  U18_gaa(x1, x2, x4)
pC_out_gaa(x1, x2, x3)  =  pC_out_gaa(x1, x2)
U3_g(x1, x2)  =  U3_g(x1, x2)
pD_in_gaa(x1, x2, x3)  =  pD_in_gaa(x1)
U19_gaa(x1, x2, x3, x4)  =  U19_gaa(x1, x4)
U20_gaa(x1, x2, x3, x4)  =  U20_gaa(x1, x2, x4)
pD_out_gaa(x1, x2, x3)  =  pD_out_gaa(x1, x2)
U4_g(x1, x2)  =  U4_g(x1, x2)
pE_in_  =  pE_in_
U21_(x1)  =  U21_(x1)
treeF_in_  =  treeF_in_
treeF_out_  =  treeF_out_
U22_(x1)  =  U22_(x1)
pE_out_  =  pE_out_
U5_g(x1)  =  U5_g(x1)
GOALA_IN_G(x1)  =  GOALA_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
PB_IN_GAA(x1, x2, x3)  =  PB_IN_GAA(x1)
U11_GAA(x1, x2, x3, x4)  =  U11_GAA(x1, x4)
S2TG_IN_GA(x1, x2)  =  S2TG_IN_GA(x1)
U6_GA(x1, x2, x3, x4)  =  U6_GA(x1, x4)
U7_GA(x1, x2, x3, x4)  =  U7_GA(x1, x4)
U8_GA(x1, x2, x3, x4)  =  U8_GA(x1, x4)
U12_GAA(x1, x2, x3, x4)  =  U12_GAA(x1, x2, x4)
TREEJ_IN_GA(x1, x2)  =  TREEJ_IN_GA(x1)
U10_GA(x1, x2, x3)  =  U10_GA(x1, x3)
PK_IN_G(x1)  =  PK_IN_G(x1)
U13_G(x1, x2)  =  U13_G(x1, x2)
TREEH_IN_G(x1)  =  TREEH_IN_G(x1)
U9_G(x1, x2, x3, x4)  =  U9_G(x1, x3, x4)
PI_IN_GG(x1, x2)  =  PI_IN_GG(x1, x2)
U15_GG(x1, x2, x3)  =  U15_GG(x1, x2, x3)
U16_GG(x1, x2, x3)  =  U16_GG(x1, x2, x3)
U14_G(x1, x2)  =  U14_G(x1, x2)
U2_G(x1, x2)  =  U2_G(x1, x2)
PC_IN_GAA(x1, x2, x3)  =  PC_IN_GAA(x1)
U17_GAA(x1, x2, x3, x4)  =  U17_GAA(x1, x4)
U18_GAA(x1, x2, x3, x4)  =  U18_GAA(x1, x2, x4)
U3_G(x1, x2)  =  U3_G(x1, x2)
PD_IN_GAA(x1, x2, x3)  =  PD_IN_GAA(x1)
U19_GAA(x1, x2, x3, x4)  =  U19_GAA(x1, x4)
U20_GAA(x1, x2, x3, x4)  =  U20_GAA(x1, x2, x4)
U4_G(x1, x2)  =  U4_G(x1, x2)
PE_IN_  =  PE_IN_
U21_1(x1)  =  U21_1(x1)
TREEF_IN_  =  TREEF_IN_
U22_1(x1)  =  U22_1(x1)
U5_G(x1)  =  U5_G(x1)

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

(4) Obligation:

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

GOALA_IN_G(s(T8)) → U1_G(T8, pB_in_gaa(T8, X27, X28))
GOALA_IN_G(s(T8)) → PB_IN_GAA(T8, X27, X28)
PB_IN_GAA(T8, T10, X28) → U11_GAA(T8, T10, X28, s2tG_in_ga(T8, T10))
PB_IN_GAA(T8, T10, X28) → S2TG_IN_GA(T8, T10)
S2TG_IN_GA(s(T16), node(X62, X63, X62)) → U6_GA(T16, X62, X63, s2tG_in_ga(T16, X62))
S2TG_IN_GA(s(T16), node(X62, X63, X62)) → S2TG_IN_GA(T16, X62)
S2TG_IN_GA(s(T22), node(nil, X92, X93)) → U7_GA(T22, X92, X93, s2tG_in_ga(T22, X93))
S2TG_IN_GA(s(T22), node(nil, X92, X93)) → S2TG_IN_GA(T22, X93)
S2TG_IN_GA(s(T28), node(X122, X123, nil)) → U8_GA(T28, X122, X123, s2tG_in_ga(T28, X122))
S2TG_IN_GA(s(T28), node(X122, X123, nil)) → S2TG_IN_GA(T28, X122)
U11_GAA(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_GAA(T8, T10, X28, treeJ_in_ga(T10, X28))
U11_GAA(T8, T10, X28, s2tG_out_ga(T8, T10)) → TREEJ_IN_GA(T10, X28)
TREEJ_IN_GA(T39, X155) → U10_GA(T39, X155, pK_in_g(T39))
TREEJ_IN_GA(T39, X155) → PK_IN_G(T39)
PK_IN_G(T40) → U13_G(T40, treeH_in_g(T40))
PK_IN_G(T40) → TREEH_IN_G(T40)
TREEH_IN_G(node(T50, T48, T51)) → U9_G(T50, T48, T51, pI_in_gg(T50, T51))
TREEH_IN_G(node(T50, T48, T51)) → PI_IN_GG(T50, T51)
PI_IN_GG(T50, T52) → U15_GG(T50, T52, treeH_in_g(T50))
PI_IN_GG(T50, T52) → TREEH_IN_G(T50)
U15_GG(T50, T52, treeH_out_g(T50)) → U16_GG(T50, T52, treeH_in_g(T52))
U15_GG(T50, T52, treeH_out_g(T50)) → TREEH_IN_G(T52)
U13_G(T40, treeH_out_g(T40)) → U14_G(T40, treeH_in_g(T40))
U13_G(T40, treeH_out_g(T40)) → TREEH_IN_G(T40)
GOALA_IN_G(s(T57)) → U2_G(T57, pC_in_gaa(T57, X189, X188))
GOALA_IN_G(s(T57)) → PC_IN_GAA(T57, X189, X188)
PC_IN_GAA(T57, T59, X188) → U17_GAA(T57, T59, X188, s2tG_in_ga(T57, T59))
PC_IN_GAA(T57, T59, X188) → S2TG_IN_GA(T57, T59)
U17_GAA(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_GAA(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U17_GAA(T57, T59, X188, s2tG_out_ga(T57, T59)) → TREEH_IN_G(node(nil, X188, T59))
GOALA_IN_G(s(T65)) → U3_G(T65, pD_in_gaa(T65, X223, X224))
GOALA_IN_G(s(T65)) → PD_IN_GAA(T65, X223, X224)
PD_IN_GAA(T65, T67, X224) → U19_GAA(T65, T67, X224, s2tG_in_ga(T65, T67))
PD_IN_GAA(T65, T67, X224) → S2TG_IN_GA(T65, T67)
U19_GAA(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_GAA(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U19_GAA(T65, T67, X224, s2tG_out_ga(T65, T67)) → TREEH_IN_G(node(T67, X224, nil))
GOALA_IN_G(s(T73)) → U4_G(T73, pE_in_)
GOALA_IN_G(s(T73)) → PE_IN_
PE_IN_U21_1(treeF_in_)
PE_IN_TREEF_IN_
U21_1(treeF_out_) → U22_1(treeF_in_)
U21_1(treeF_out_) → TREEF_IN_
GOALA_IN_G(0) → U5_G(treeF_in_)
GOALA_IN_G(0) → TREEF_IN_

The TRS R consists of the following rules:

goalA_in_g(s(T8)) → U1_g(T8, pB_in_gaa(T8, X27, X28))
pB_in_gaa(T8, T10, X28) → U11_gaa(T8, T10, X28, s2tG_in_ga(T8, T10))
s2tG_in_ga(s(T16), node(X62, X63, X62)) → U6_ga(T16, X62, X63, s2tG_in_ga(T16, X62))
s2tG_in_ga(s(T22), node(nil, X92, X93)) → U7_ga(T22, X92, X93, s2tG_in_ga(T22, X93))
s2tG_in_ga(s(T28), node(X122, X123, nil)) → U8_ga(T28, X122, X123, s2tG_in_ga(T28, X122))
s2tG_in_ga(s(T34), node(nil, X143, nil)) → s2tG_out_ga(s(T34), node(nil, X143, nil))
s2tG_in_ga(0, nil) → s2tG_out_ga(0, nil)
U8_ga(T28, X122, X123, s2tG_out_ga(T28, X122)) → s2tG_out_ga(s(T28), node(X122, X123, nil))
U7_ga(T22, X92, X93, s2tG_out_ga(T22, X93)) → s2tG_out_ga(s(T22), node(nil, X92, X93))
U6_ga(T16, X62, X63, s2tG_out_ga(T16, X62)) → s2tG_out_ga(s(T16), node(X62, X63, X62))
U11_gaa(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_gaa(T8, T10, X28, treeJ_in_ga(T10, X28))
treeJ_in_ga(T39, X155) → U10_ga(T39, X155, pK_in_g(T39))
pK_in_g(T40) → U13_g(T40, treeH_in_g(T40))
treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T48, T51)) → U9_g(T50, T48, T51, pI_in_gg(T50, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)
U9_g(T50, T48, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T48, T51))
U13_g(T40, treeH_out_g(T40)) → U14_g(T40, treeH_in_g(T40))
U14_g(T40, treeH_out_g(T40)) → pK_out_g(T40)
U10_ga(T39, X155, pK_out_g(T39)) → treeJ_out_ga(T39, X155)
U12_gaa(T8, T10, X28, treeJ_out_ga(T10, X28)) → pB_out_gaa(T8, T10, X28)
U1_g(T8, pB_out_gaa(T8, X27, X28)) → goalA_out_g(s(T8))
goalA_in_g(s(T57)) → U2_g(T57, pC_in_gaa(T57, X189, X188))
pC_in_gaa(T57, T59, X188) → U17_gaa(T57, T59, X188, s2tG_in_ga(T57, T59))
U17_gaa(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_gaa(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U18_gaa(T57, T59, X188, treeH_out_g(node(nil, X188, T59))) → pC_out_gaa(T57, T59, X188)
U2_g(T57, pC_out_gaa(T57, X189, X188)) → goalA_out_g(s(T57))
goalA_in_g(s(T65)) → U3_g(T65, pD_in_gaa(T65, X223, X224))
pD_in_gaa(T65, T67, X224) → U19_gaa(T65, T67, X224, s2tG_in_ga(T65, T67))
U19_gaa(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_gaa(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U20_gaa(T65, T67, X224, treeH_out_g(node(T67, X224, nil))) → pD_out_gaa(T65, T67, X224)
U3_g(T65, pD_out_gaa(T65, X223, X224)) → goalA_out_g(s(T65))
goalA_in_g(s(T73)) → U4_g(T73, pE_in_)
pE_in_U21_(treeF_in_)
treeF_in_treeF_out_
U21_(treeF_out_) → U22_(treeF_in_)
U22_(treeF_out_) → pE_out_
U4_g(T73, pE_out_) → goalA_out_g(s(T73))
goalA_in_g(0) → U5_g(treeF_in_)
U5_g(treeF_out_) → goalA_out_g(0)

The argument filtering Pi contains the following mapping:
goalA_in_g(x1)  =  goalA_in_g(x1)
s(x1)  =  s(x1)
U1_g(x1, x2)  =  U1_g(x1, x2)
pB_in_gaa(x1, x2, x3)  =  pB_in_gaa(x1)
U11_gaa(x1, x2, x3, x4)  =  U11_gaa(x1, x4)
s2tG_in_ga(x1, x2)  =  s2tG_in_ga(x1)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x1, x4)
U7_ga(x1, x2, x3, x4)  =  U7_ga(x1, x4)
U8_ga(x1, x2, x3, x4)  =  U8_ga(x1, x4)
s2tG_out_ga(x1, x2)  =  s2tG_out_ga(x1, x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
U12_gaa(x1, x2, x3, x4)  =  U12_gaa(x1, x2, x4)
treeJ_in_ga(x1, x2)  =  treeJ_in_ga(x1)
U10_ga(x1, x2, x3)  =  U10_ga(x1, x3)
pK_in_g(x1)  =  pK_in_g(x1)
U13_g(x1, x2)  =  U13_g(x1, x2)
treeH_in_g(x1)  =  treeH_in_g(x1)
nil  =  nil
treeH_out_g(x1)  =  treeH_out_g(x1)
U9_g(x1, x2, x3, x4)  =  U9_g(x1, x3, x4)
pI_in_gg(x1, x2)  =  pI_in_gg(x1, x2)
U15_gg(x1, x2, x3)  =  U15_gg(x1, x2, x3)
U16_gg(x1, x2, x3)  =  U16_gg(x1, x2, x3)
pI_out_gg(x1, x2)  =  pI_out_gg(x1, x2)
U14_g(x1, x2)  =  U14_g(x1, x2)
pK_out_g(x1)  =  pK_out_g(x1)
treeJ_out_ga(x1, x2)  =  treeJ_out_ga(x1)
pB_out_gaa(x1, x2, x3)  =  pB_out_gaa(x1, x2)
goalA_out_g(x1)  =  goalA_out_g(x1)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaa(x1, x2, x3)  =  pC_in_gaa(x1)
U17_gaa(x1, x2, x3, x4)  =  U17_gaa(x1, x4)
U18_gaa(x1, x2, x3, x4)  =  U18_gaa(x1, x2, x4)
pC_out_gaa(x1, x2, x3)  =  pC_out_gaa(x1, x2)
U3_g(x1, x2)  =  U3_g(x1, x2)
pD_in_gaa(x1, x2, x3)  =  pD_in_gaa(x1)
U19_gaa(x1, x2, x3, x4)  =  U19_gaa(x1, x4)
U20_gaa(x1, x2, x3, x4)  =  U20_gaa(x1, x2, x4)
pD_out_gaa(x1, x2, x3)  =  pD_out_gaa(x1, x2)
U4_g(x1, x2)  =  U4_g(x1, x2)
pE_in_  =  pE_in_
U21_(x1)  =  U21_(x1)
treeF_in_  =  treeF_in_
treeF_out_  =  treeF_out_
U22_(x1)  =  U22_(x1)
pE_out_  =  pE_out_
U5_g(x1)  =  U5_g(x1)
GOALA_IN_G(x1)  =  GOALA_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
PB_IN_GAA(x1, x2, x3)  =  PB_IN_GAA(x1)
U11_GAA(x1, x2, x3, x4)  =  U11_GAA(x1, x4)
S2TG_IN_GA(x1, x2)  =  S2TG_IN_GA(x1)
U6_GA(x1, x2, x3, x4)  =  U6_GA(x1, x4)
U7_GA(x1, x2, x3, x4)  =  U7_GA(x1, x4)
U8_GA(x1, x2, x3, x4)  =  U8_GA(x1, x4)
U12_GAA(x1, x2, x3, x4)  =  U12_GAA(x1, x2, x4)
TREEJ_IN_GA(x1, x2)  =  TREEJ_IN_GA(x1)
U10_GA(x1, x2, x3)  =  U10_GA(x1, x3)
PK_IN_G(x1)  =  PK_IN_G(x1)
U13_G(x1, x2)  =  U13_G(x1, x2)
TREEH_IN_G(x1)  =  TREEH_IN_G(x1)
U9_G(x1, x2, x3, x4)  =  U9_G(x1, x3, x4)
PI_IN_GG(x1, x2)  =  PI_IN_GG(x1, x2)
U15_GG(x1, x2, x3)  =  U15_GG(x1, x2, x3)
U16_GG(x1, x2, x3)  =  U16_GG(x1, x2, x3)
U14_G(x1, x2)  =  U14_G(x1, x2)
U2_G(x1, x2)  =  U2_G(x1, x2)
PC_IN_GAA(x1, x2, x3)  =  PC_IN_GAA(x1)
U17_GAA(x1, x2, x3, x4)  =  U17_GAA(x1, x4)
U18_GAA(x1, x2, x3, x4)  =  U18_GAA(x1, x2, x4)
U3_G(x1, x2)  =  U3_G(x1, x2)
PD_IN_GAA(x1, x2, x3)  =  PD_IN_GAA(x1)
U19_GAA(x1, x2, x3, x4)  =  U19_GAA(x1, x4)
U20_GAA(x1, x2, x3, x4)  =  U20_GAA(x1, x2, x4)
U4_G(x1, x2)  =  U4_G(x1, x2)
PE_IN_  =  PE_IN_
U21_1(x1)  =  U21_1(x1)
TREEF_IN_  =  TREEF_IN_
U22_1(x1)  =  U22_1(x1)
U5_G(x1)  =  U5_G(x1)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

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

(6) Complex Obligation (AND)

(7) Obligation:

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

TREEH_IN_G(node(T50, T48, T51)) → PI_IN_GG(T50, T51)
PI_IN_GG(T50, T52) → U15_GG(T50, T52, treeH_in_g(T50))
U15_GG(T50, T52, treeH_out_g(T50)) → TREEH_IN_G(T52)
PI_IN_GG(T50, T52) → TREEH_IN_G(T50)

The TRS R consists of the following rules:

goalA_in_g(s(T8)) → U1_g(T8, pB_in_gaa(T8, X27, X28))
pB_in_gaa(T8, T10, X28) → U11_gaa(T8, T10, X28, s2tG_in_ga(T8, T10))
s2tG_in_ga(s(T16), node(X62, X63, X62)) → U6_ga(T16, X62, X63, s2tG_in_ga(T16, X62))
s2tG_in_ga(s(T22), node(nil, X92, X93)) → U7_ga(T22, X92, X93, s2tG_in_ga(T22, X93))
s2tG_in_ga(s(T28), node(X122, X123, nil)) → U8_ga(T28, X122, X123, s2tG_in_ga(T28, X122))
s2tG_in_ga(s(T34), node(nil, X143, nil)) → s2tG_out_ga(s(T34), node(nil, X143, nil))
s2tG_in_ga(0, nil) → s2tG_out_ga(0, nil)
U8_ga(T28, X122, X123, s2tG_out_ga(T28, X122)) → s2tG_out_ga(s(T28), node(X122, X123, nil))
U7_ga(T22, X92, X93, s2tG_out_ga(T22, X93)) → s2tG_out_ga(s(T22), node(nil, X92, X93))
U6_ga(T16, X62, X63, s2tG_out_ga(T16, X62)) → s2tG_out_ga(s(T16), node(X62, X63, X62))
U11_gaa(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_gaa(T8, T10, X28, treeJ_in_ga(T10, X28))
treeJ_in_ga(T39, X155) → U10_ga(T39, X155, pK_in_g(T39))
pK_in_g(T40) → U13_g(T40, treeH_in_g(T40))
treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T48, T51)) → U9_g(T50, T48, T51, pI_in_gg(T50, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)
U9_g(T50, T48, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T48, T51))
U13_g(T40, treeH_out_g(T40)) → U14_g(T40, treeH_in_g(T40))
U14_g(T40, treeH_out_g(T40)) → pK_out_g(T40)
U10_ga(T39, X155, pK_out_g(T39)) → treeJ_out_ga(T39, X155)
U12_gaa(T8, T10, X28, treeJ_out_ga(T10, X28)) → pB_out_gaa(T8, T10, X28)
U1_g(T8, pB_out_gaa(T8, X27, X28)) → goalA_out_g(s(T8))
goalA_in_g(s(T57)) → U2_g(T57, pC_in_gaa(T57, X189, X188))
pC_in_gaa(T57, T59, X188) → U17_gaa(T57, T59, X188, s2tG_in_ga(T57, T59))
U17_gaa(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_gaa(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U18_gaa(T57, T59, X188, treeH_out_g(node(nil, X188, T59))) → pC_out_gaa(T57, T59, X188)
U2_g(T57, pC_out_gaa(T57, X189, X188)) → goalA_out_g(s(T57))
goalA_in_g(s(T65)) → U3_g(T65, pD_in_gaa(T65, X223, X224))
pD_in_gaa(T65, T67, X224) → U19_gaa(T65, T67, X224, s2tG_in_ga(T65, T67))
U19_gaa(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_gaa(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U20_gaa(T65, T67, X224, treeH_out_g(node(T67, X224, nil))) → pD_out_gaa(T65, T67, X224)
U3_g(T65, pD_out_gaa(T65, X223, X224)) → goalA_out_g(s(T65))
goalA_in_g(s(T73)) → U4_g(T73, pE_in_)
pE_in_U21_(treeF_in_)
treeF_in_treeF_out_
U21_(treeF_out_) → U22_(treeF_in_)
U22_(treeF_out_) → pE_out_
U4_g(T73, pE_out_) → goalA_out_g(s(T73))
goalA_in_g(0) → U5_g(treeF_in_)
U5_g(treeF_out_) → goalA_out_g(0)

The argument filtering Pi contains the following mapping:
goalA_in_g(x1)  =  goalA_in_g(x1)
s(x1)  =  s(x1)
U1_g(x1, x2)  =  U1_g(x1, x2)
pB_in_gaa(x1, x2, x3)  =  pB_in_gaa(x1)
U11_gaa(x1, x2, x3, x4)  =  U11_gaa(x1, x4)
s2tG_in_ga(x1, x2)  =  s2tG_in_ga(x1)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x1, x4)
U7_ga(x1, x2, x3, x4)  =  U7_ga(x1, x4)
U8_ga(x1, x2, x3, x4)  =  U8_ga(x1, x4)
s2tG_out_ga(x1, x2)  =  s2tG_out_ga(x1, x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
U12_gaa(x1, x2, x3, x4)  =  U12_gaa(x1, x2, x4)
treeJ_in_ga(x1, x2)  =  treeJ_in_ga(x1)
U10_ga(x1, x2, x3)  =  U10_ga(x1, x3)
pK_in_g(x1)  =  pK_in_g(x1)
U13_g(x1, x2)  =  U13_g(x1, x2)
treeH_in_g(x1)  =  treeH_in_g(x1)
nil  =  nil
treeH_out_g(x1)  =  treeH_out_g(x1)
U9_g(x1, x2, x3, x4)  =  U9_g(x1, x3, x4)
pI_in_gg(x1, x2)  =  pI_in_gg(x1, x2)
U15_gg(x1, x2, x3)  =  U15_gg(x1, x2, x3)
U16_gg(x1, x2, x3)  =  U16_gg(x1, x2, x3)
pI_out_gg(x1, x2)  =  pI_out_gg(x1, x2)
U14_g(x1, x2)  =  U14_g(x1, x2)
pK_out_g(x1)  =  pK_out_g(x1)
treeJ_out_ga(x1, x2)  =  treeJ_out_ga(x1)
pB_out_gaa(x1, x2, x3)  =  pB_out_gaa(x1, x2)
goalA_out_g(x1)  =  goalA_out_g(x1)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaa(x1, x2, x3)  =  pC_in_gaa(x1)
U17_gaa(x1, x2, x3, x4)  =  U17_gaa(x1, x4)
U18_gaa(x1, x2, x3, x4)  =  U18_gaa(x1, x2, x4)
pC_out_gaa(x1, x2, x3)  =  pC_out_gaa(x1, x2)
U3_g(x1, x2)  =  U3_g(x1, x2)
pD_in_gaa(x1, x2, x3)  =  pD_in_gaa(x1)
U19_gaa(x1, x2, x3, x4)  =  U19_gaa(x1, x4)
U20_gaa(x1, x2, x3, x4)  =  U20_gaa(x1, x2, x4)
pD_out_gaa(x1, x2, x3)  =  pD_out_gaa(x1, x2)
U4_g(x1, x2)  =  U4_g(x1, x2)
pE_in_  =  pE_in_
U21_(x1)  =  U21_(x1)
treeF_in_  =  treeF_in_
treeF_out_  =  treeF_out_
U22_(x1)  =  U22_(x1)
pE_out_  =  pE_out_
U5_g(x1)  =  U5_g(x1)
TREEH_IN_G(x1)  =  TREEH_IN_G(x1)
PI_IN_GG(x1, x2)  =  PI_IN_GG(x1, x2)
U15_GG(x1, x2, x3)  =  U15_GG(x1, x2, x3)

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:

TREEH_IN_G(node(T50, T48, T51)) → PI_IN_GG(T50, T51)
PI_IN_GG(T50, T52) → U15_GG(T50, T52, treeH_in_g(T50))
U15_GG(T50, T52, treeH_out_g(T50)) → TREEH_IN_G(T52)
PI_IN_GG(T50, T52) → TREEH_IN_G(T50)

The TRS R consists of the following rules:

treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T48, T51)) → U9_g(T50, T48, T51, pI_in_gg(T50, T51))
U9_g(T50, T48, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T48, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)

The argument filtering Pi contains the following mapping:
node(x1, x2, x3)  =  node(x1, x3)
treeH_in_g(x1)  =  treeH_in_g(x1)
nil  =  nil
treeH_out_g(x1)  =  treeH_out_g(x1)
U9_g(x1, x2, x3, x4)  =  U9_g(x1, x3, x4)
pI_in_gg(x1, x2)  =  pI_in_gg(x1, x2)
U15_gg(x1, x2, x3)  =  U15_gg(x1, x2, x3)
U16_gg(x1, x2, x3)  =  U16_gg(x1, x2, x3)
pI_out_gg(x1, x2)  =  pI_out_gg(x1, x2)
TREEH_IN_G(x1)  =  TREEH_IN_G(x1)
PI_IN_GG(x1, x2)  =  PI_IN_GG(x1, x2)
U15_GG(x1, x2, x3)  =  U15_GG(x1, x2, x3)

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:

TREEH_IN_G(node(T50, T51)) → PI_IN_GG(T50, T51)
PI_IN_GG(T50, T52) → U15_GG(T50, T52, treeH_in_g(T50))
U15_GG(T50, T52, treeH_out_g(T50)) → TREEH_IN_G(T52)
PI_IN_GG(T50, T52) → TREEH_IN_G(T50)

The TRS R consists of the following rules:

treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T51)) → U9_g(T50, T51, pI_in_gg(T50, T51))
U9_g(T50, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)

The set Q consists of the following terms:

treeH_in_g(x0)
U9_g(x0, x1, x2)
pI_in_gg(x0, x1)
U15_gg(x0, x1, x2)
U16_gg(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:

  • PI_IN_GG(T50, T52) → TREEH_IN_G(T50)
    The graph contains the following edges 1 >= 1

  • PI_IN_GG(T50, T52) → U15_GG(T50, T52, treeH_in_g(T50))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U15_GG(T50, T52, treeH_out_g(T50)) → TREEH_IN_G(T52)
    The graph contains the following edges 2 >= 1

  • TREEH_IN_G(node(T50, T51)) → PI_IN_GG(T50, T51)
    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:

S2TG_IN_GA(s(T22), node(nil, X92, X93)) → S2TG_IN_GA(T22, X93)
S2TG_IN_GA(s(T16), node(X62, X63, X62)) → S2TG_IN_GA(T16, X62)
S2TG_IN_GA(s(T28), node(X122, X123, nil)) → S2TG_IN_GA(T28, X122)

The TRS R consists of the following rules:

goalA_in_g(s(T8)) → U1_g(T8, pB_in_gaa(T8, X27, X28))
pB_in_gaa(T8, T10, X28) → U11_gaa(T8, T10, X28, s2tG_in_ga(T8, T10))
s2tG_in_ga(s(T16), node(X62, X63, X62)) → U6_ga(T16, X62, X63, s2tG_in_ga(T16, X62))
s2tG_in_ga(s(T22), node(nil, X92, X93)) → U7_ga(T22, X92, X93, s2tG_in_ga(T22, X93))
s2tG_in_ga(s(T28), node(X122, X123, nil)) → U8_ga(T28, X122, X123, s2tG_in_ga(T28, X122))
s2tG_in_ga(s(T34), node(nil, X143, nil)) → s2tG_out_ga(s(T34), node(nil, X143, nil))
s2tG_in_ga(0, nil) → s2tG_out_ga(0, nil)
U8_ga(T28, X122, X123, s2tG_out_ga(T28, X122)) → s2tG_out_ga(s(T28), node(X122, X123, nil))
U7_ga(T22, X92, X93, s2tG_out_ga(T22, X93)) → s2tG_out_ga(s(T22), node(nil, X92, X93))
U6_ga(T16, X62, X63, s2tG_out_ga(T16, X62)) → s2tG_out_ga(s(T16), node(X62, X63, X62))
U11_gaa(T8, T10, X28, s2tG_out_ga(T8, T10)) → U12_gaa(T8, T10, X28, treeJ_in_ga(T10, X28))
treeJ_in_ga(T39, X155) → U10_ga(T39, X155, pK_in_g(T39))
pK_in_g(T40) → U13_g(T40, treeH_in_g(T40))
treeH_in_g(nil) → treeH_out_g(nil)
treeH_in_g(node(T50, T48, T51)) → U9_g(T50, T48, T51, pI_in_gg(T50, T51))
pI_in_gg(T50, T52) → U15_gg(T50, T52, treeH_in_g(T50))
U15_gg(T50, T52, treeH_out_g(T50)) → U16_gg(T50, T52, treeH_in_g(T52))
U16_gg(T50, T52, treeH_out_g(T52)) → pI_out_gg(T50, T52)
U9_g(T50, T48, T51, pI_out_gg(T50, T51)) → treeH_out_g(node(T50, T48, T51))
U13_g(T40, treeH_out_g(T40)) → U14_g(T40, treeH_in_g(T40))
U14_g(T40, treeH_out_g(T40)) → pK_out_g(T40)
U10_ga(T39, X155, pK_out_g(T39)) → treeJ_out_ga(T39, X155)
U12_gaa(T8, T10, X28, treeJ_out_ga(T10, X28)) → pB_out_gaa(T8, T10, X28)
U1_g(T8, pB_out_gaa(T8, X27, X28)) → goalA_out_g(s(T8))
goalA_in_g(s(T57)) → U2_g(T57, pC_in_gaa(T57, X189, X188))
pC_in_gaa(T57, T59, X188) → U17_gaa(T57, T59, X188, s2tG_in_ga(T57, T59))
U17_gaa(T57, T59, X188, s2tG_out_ga(T57, T59)) → U18_gaa(T57, T59, X188, treeH_in_g(node(nil, X188, T59)))
U18_gaa(T57, T59, X188, treeH_out_g(node(nil, X188, T59))) → pC_out_gaa(T57, T59, X188)
U2_g(T57, pC_out_gaa(T57, X189, X188)) → goalA_out_g(s(T57))
goalA_in_g(s(T65)) → U3_g(T65, pD_in_gaa(T65, X223, X224))
pD_in_gaa(T65, T67, X224) → U19_gaa(T65, T67, X224, s2tG_in_ga(T65, T67))
U19_gaa(T65, T67, X224, s2tG_out_ga(T65, T67)) → U20_gaa(T65, T67, X224, treeH_in_g(node(T67, X224, nil)))
U20_gaa(T65, T67, X224, treeH_out_g(node(T67, X224, nil))) → pD_out_gaa(T65, T67, X224)
U3_g(T65, pD_out_gaa(T65, X223, X224)) → goalA_out_g(s(T65))
goalA_in_g(s(T73)) → U4_g(T73, pE_in_)
pE_in_U21_(treeF_in_)
treeF_in_treeF_out_
U21_(treeF_out_) → U22_(treeF_in_)
U22_(treeF_out_) → pE_out_
U4_g(T73, pE_out_) → goalA_out_g(s(T73))
goalA_in_g(0) → U5_g(treeF_in_)
U5_g(treeF_out_) → goalA_out_g(0)

The argument filtering Pi contains the following mapping:
goalA_in_g(x1)  =  goalA_in_g(x1)
s(x1)  =  s(x1)
U1_g(x1, x2)  =  U1_g(x1, x2)
pB_in_gaa(x1, x2, x3)  =  pB_in_gaa(x1)
U11_gaa(x1, x2, x3, x4)  =  U11_gaa(x1, x4)
s2tG_in_ga(x1, x2)  =  s2tG_in_ga(x1)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x1, x4)
U7_ga(x1, x2, x3, x4)  =  U7_ga(x1, x4)
U8_ga(x1, x2, x3, x4)  =  U8_ga(x1, x4)
s2tG_out_ga(x1, x2)  =  s2tG_out_ga(x1, x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
U12_gaa(x1, x2, x3, x4)  =  U12_gaa(x1, x2, x4)
treeJ_in_ga(x1, x2)  =  treeJ_in_ga(x1)
U10_ga(x1, x2, x3)  =  U10_ga(x1, x3)
pK_in_g(x1)  =  pK_in_g(x1)
U13_g(x1, x2)  =  U13_g(x1, x2)
treeH_in_g(x1)  =  treeH_in_g(x1)
nil  =  nil
treeH_out_g(x1)  =  treeH_out_g(x1)
U9_g(x1, x2, x3, x4)  =  U9_g(x1, x3, x4)
pI_in_gg(x1, x2)  =  pI_in_gg(x1, x2)
U15_gg(x1, x2, x3)  =  U15_gg(x1, x2, x3)
U16_gg(x1, x2, x3)  =  U16_gg(x1, x2, x3)
pI_out_gg(x1, x2)  =  pI_out_gg(x1, x2)
U14_g(x1, x2)  =  U14_g(x1, x2)
pK_out_g(x1)  =  pK_out_g(x1)
treeJ_out_ga(x1, x2)  =  treeJ_out_ga(x1)
pB_out_gaa(x1, x2, x3)  =  pB_out_gaa(x1, x2)
goalA_out_g(x1)  =  goalA_out_g(x1)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaa(x1, x2, x3)  =  pC_in_gaa(x1)
U17_gaa(x1, x2, x3, x4)  =  U17_gaa(x1, x4)
U18_gaa(x1, x2, x3, x4)  =  U18_gaa(x1, x2, x4)
pC_out_gaa(x1, x2, x3)  =  pC_out_gaa(x1, x2)
U3_g(x1, x2)  =  U3_g(x1, x2)
pD_in_gaa(x1, x2, x3)  =  pD_in_gaa(x1)
U19_gaa(x1, x2, x3, x4)  =  U19_gaa(x1, x4)
U20_gaa(x1, x2, x3, x4)  =  U20_gaa(x1, x2, x4)
pD_out_gaa(x1, x2, x3)  =  pD_out_gaa(x1, x2)
U4_g(x1, x2)  =  U4_g(x1, x2)
pE_in_  =  pE_in_
U21_(x1)  =  U21_(x1)
treeF_in_  =  treeF_in_
treeF_out_  =  treeF_out_
U22_(x1)  =  U22_(x1)
pE_out_  =  pE_out_
U5_g(x1)  =  U5_g(x1)
S2TG_IN_GA(x1, x2)  =  S2TG_IN_GA(x1)

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:

S2TG_IN_GA(s(T22), node(nil, X92, X93)) → S2TG_IN_GA(T22, X93)
S2TG_IN_GA(s(T16), node(X62, X63, X62)) → S2TG_IN_GA(T16, X62)
S2TG_IN_GA(s(T28), node(X122, X123, nil)) → S2TG_IN_GA(T28, X122)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
node(x1, x2, x3)  =  node(x1, x3)
nil  =  nil
S2TG_IN_GA(x1, x2)  =  S2TG_IN_GA(x1)

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:

S2TG_IN_GA(s(T22)) → S2TG_IN_GA(T22)

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:

  • S2TG_IN_GA(s(T22)) → S2TG_IN_GA(T22)
    The graph contains the following edges 1 > 1

(20) YES