(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)).

Queries:

goal(g).

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph.

(2) Obligation:

Clauses:

s2t9(s(T16), node(X65, X66, X65)) :- s2t9(T16, X65).
s2t9(s(T22), node(nil, X98, X99)) :- s2t9(T22, X99).
s2t9(s(T28), node(X131, X132, nil)) :- s2t9(T28, X131).
s2t9(s(T34), node(nil, X155, nil)).
s2t9(0, nil).
tree36(nil).
tree36(node(T51, T49, T52)) :- tree36(T51).
tree36(node(T51, T49, T53)) :- ','(tree36(T51), tree36(T53)).
tree67.
goal1(s(T8)) :- s2t9(T8, X27).
goal1(s(T8)) :- ','(s2t9(T8, T40), tree36(T40)).
goal1(s(T8)) :- ','(s2t9(T8, T41), ','(tree36(T41), tree36(T41))).
goal1(s(T58)) :- s2t9(T58, X210).
goal1(s(T58)) :- ','(s2t9(T58, T60), tree36(node(nil, X209, T60))).
goal1(s(T67)) :- s2t9(T67, X251).
goal1(s(T67)) :- ','(s2t9(T67, T69), tree36(node(T69, X252, nil))).
goal1(s(T76)) :- tree67.
goal1(s(T76)) :- ','(tree67, tree67).
goal1(0) :- tree67.

Queries:

goal1(g).

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
goal1_in: (b)
s2t9_in: (b,f)
tree36_in: (b)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

goal1_in_g(s(T8)) → U7_g(T8, s2t9_in_ga(T8, X27))
s2t9_in_ga(s(T16), node(X65, X66, X65)) → U1_ga(T16, X65, X66, s2t9_in_ga(T16, X65))
s2t9_in_ga(s(T22), node(nil, X98, X99)) → U2_ga(T22, X98, X99, s2t9_in_ga(T22, X99))
s2t9_in_ga(s(T28), node(X131, X132, nil)) → U3_ga(T28, X131, X132, s2t9_in_ga(T28, X131))
s2t9_in_ga(s(T34), node(nil, X155, nil)) → s2t9_out_ga(s(T34), node(nil, X155, nil))
s2t9_in_ga(0, nil) → s2t9_out_ga(0, nil)
U3_ga(T28, X131, X132, s2t9_out_ga(T28, X131)) → s2t9_out_ga(s(T28), node(X131, X132, nil))
U2_ga(T22, X98, X99, s2t9_out_ga(T22, X99)) → s2t9_out_ga(s(T22), node(nil, X98, X99))
U1_ga(T16, X65, X66, s2t9_out_ga(T16, X65)) → s2t9_out_ga(s(T16), node(X65, X66, X65))
U7_g(T8, s2t9_out_ga(T8, X27)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U8_g(T8, s2t9_in_ga(T8, T40))
U8_g(T8, s2t9_out_ga(T8, T40)) → U9_g(T8, tree36_in_g(T40))
tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U9_g(T8, tree36_out_g(T40)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U10_g(T8, s2t9_in_ga(T8, T41))
U10_g(T8, s2t9_out_ga(T8, T41)) → U11_g(T8, T41, tree36_in_g(T41))
U11_g(T8, T41, tree36_out_g(T41)) → U12_g(T8, tree36_in_g(T41))
U12_g(T8, tree36_out_g(T41)) → goal1_out_g(s(T8))
goal1_in_g(s(T58)) → U13_g(T58, s2t9_in_ga(T58, X210))
U13_g(T58, s2t9_out_ga(T58, X210)) → goal1_out_g(s(T58))
goal1_in_g(s(T58)) → U14_g(T58, s2t9_in_ga(T58, T60))
U14_g(T58, s2t9_out_ga(T58, T60)) → U15_g(T58, tree36_in_g(node(nil, X209, T60)))
U15_g(T58, tree36_out_g(node(nil, X209, T60))) → goal1_out_g(s(T58))
goal1_in_g(s(T67)) → U16_g(T67, s2t9_in_ga(T67, X251))
U16_g(T67, s2t9_out_ga(T67, X251)) → goal1_out_g(s(T67))
goal1_in_g(s(T67)) → U17_g(T67, s2t9_in_ga(T67, T69))
U17_g(T67, s2t9_out_ga(T67, T69)) → U18_g(T67, tree36_in_g(node(T69, X252, nil)))
U18_g(T67, tree36_out_g(node(T69, X252, nil))) → goal1_out_g(s(T67))
goal1_in_g(s(T76)) → U19_g(T76, tree67_in_)
tree67_in_tree67_out_
U19_g(T76, tree67_out_) → goal1_out_g(s(T76))
U19_g(T76, tree67_out_) → U20_g(T76, tree67_in_)
U20_g(T76, tree67_out_) → goal1_out_g(s(T76))
goal1_in_g(0) → U21_g(tree67_in_)
U21_g(tree67_out_) → goal1_out_g(0)

The argument filtering Pi contains the following mapping:
goal1_in_g(x1)  =  goal1_in_g(x1)
s(x1)  =  s(x1)
U7_g(x1, x2)  =  U7_g(x2)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x4)
U2_ga(x1, x2, x3, x4)  =  U2_ga(x4)
U3_ga(x1, x2, x3, x4)  =  U3_ga(x4)
s2t9_out_ga(x1, x2)  =  s2t9_out_ga(x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
goal1_out_g(x1)  =  goal1_out_g
U8_g(x1, x2)  =  U8_g(x2)
U9_g(x1, x2)  =  U9_g(x2)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
U10_g(x1, x2)  =  U10_g(x2)
U11_g(x1, x2, x3)  =  U11_g(x2, x3)
U12_g(x1, x2)  =  U12_g(x2)
U13_g(x1, x2)  =  U13_g(x2)
U14_g(x1, x2)  =  U14_g(x2)
U15_g(x1, x2)  =  U15_g(x2)
U16_g(x1, x2)  =  U16_g(x2)
U17_g(x1, x2)  =  U17_g(x2)
U18_g(x1, x2)  =  U18_g(x2)
U19_g(x1, x2)  =  U19_g(x2)
tree67_in_  =  tree67_in_
tree67_out_  =  tree67_out_
U20_g(x1, x2)  =  U20_g(x2)
U21_g(x1)  =  U21_g(x1)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

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

goal1_in_g(s(T8)) → U7_g(T8, s2t9_in_ga(T8, X27))
s2t9_in_ga(s(T16), node(X65, X66, X65)) → U1_ga(T16, X65, X66, s2t9_in_ga(T16, X65))
s2t9_in_ga(s(T22), node(nil, X98, X99)) → U2_ga(T22, X98, X99, s2t9_in_ga(T22, X99))
s2t9_in_ga(s(T28), node(X131, X132, nil)) → U3_ga(T28, X131, X132, s2t9_in_ga(T28, X131))
s2t9_in_ga(s(T34), node(nil, X155, nil)) → s2t9_out_ga(s(T34), node(nil, X155, nil))
s2t9_in_ga(0, nil) → s2t9_out_ga(0, nil)
U3_ga(T28, X131, X132, s2t9_out_ga(T28, X131)) → s2t9_out_ga(s(T28), node(X131, X132, nil))
U2_ga(T22, X98, X99, s2t9_out_ga(T22, X99)) → s2t9_out_ga(s(T22), node(nil, X98, X99))
U1_ga(T16, X65, X66, s2t9_out_ga(T16, X65)) → s2t9_out_ga(s(T16), node(X65, X66, X65))
U7_g(T8, s2t9_out_ga(T8, X27)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U8_g(T8, s2t9_in_ga(T8, T40))
U8_g(T8, s2t9_out_ga(T8, T40)) → U9_g(T8, tree36_in_g(T40))
tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U9_g(T8, tree36_out_g(T40)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U10_g(T8, s2t9_in_ga(T8, T41))
U10_g(T8, s2t9_out_ga(T8, T41)) → U11_g(T8, T41, tree36_in_g(T41))
U11_g(T8, T41, tree36_out_g(T41)) → U12_g(T8, tree36_in_g(T41))
U12_g(T8, tree36_out_g(T41)) → goal1_out_g(s(T8))
goal1_in_g(s(T58)) → U13_g(T58, s2t9_in_ga(T58, X210))
U13_g(T58, s2t9_out_ga(T58, X210)) → goal1_out_g(s(T58))
goal1_in_g(s(T58)) → U14_g(T58, s2t9_in_ga(T58, T60))
U14_g(T58, s2t9_out_ga(T58, T60)) → U15_g(T58, tree36_in_g(node(nil, X209, T60)))
U15_g(T58, tree36_out_g(node(nil, X209, T60))) → goal1_out_g(s(T58))
goal1_in_g(s(T67)) → U16_g(T67, s2t9_in_ga(T67, X251))
U16_g(T67, s2t9_out_ga(T67, X251)) → goal1_out_g(s(T67))
goal1_in_g(s(T67)) → U17_g(T67, s2t9_in_ga(T67, T69))
U17_g(T67, s2t9_out_ga(T67, T69)) → U18_g(T67, tree36_in_g(node(T69, X252, nil)))
U18_g(T67, tree36_out_g(node(T69, X252, nil))) → goal1_out_g(s(T67))
goal1_in_g(s(T76)) → U19_g(T76, tree67_in_)
tree67_in_tree67_out_
U19_g(T76, tree67_out_) → goal1_out_g(s(T76))
U19_g(T76, tree67_out_) → U20_g(T76, tree67_in_)
U20_g(T76, tree67_out_) → goal1_out_g(s(T76))
goal1_in_g(0) → U21_g(tree67_in_)
U21_g(tree67_out_) → goal1_out_g(0)

The argument filtering Pi contains the following mapping:
goal1_in_g(x1)  =  goal1_in_g(x1)
s(x1)  =  s(x1)
U7_g(x1, x2)  =  U7_g(x2)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x4)
U2_ga(x1, x2, x3, x4)  =  U2_ga(x4)
U3_ga(x1, x2, x3, x4)  =  U3_ga(x4)
s2t9_out_ga(x1, x2)  =  s2t9_out_ga(x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
goal1_out_g(x1)  =  goal1_out_g
U8_g(x1, x2)  =  U8_g(x2)
U9_g(x1, x2)  =  U9_g(x2)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
U10_g(x1, x2)  =  U10_g(x2)
U11_g(x1, x2, x3)  =  U11_g(x2, x3)
U12_g(x1, x2)  =  U12_g(x2)
U13_g(x1, x2)  =  U13_g(x2)
U14_g(x1, x2)  =  U14_g(x2)
U15_g(x1, x2)  =  U15_g(x2)
U16_g(x1, x2)  =  U16_g(x2)
U17_g(x1, x2)  =  U17_g(x2)
U18_g(x1, x2)  =  U18_g(x2)
U19_g(x1, x2)  =  U19_g(x2)
tree67_in_  =  tree67_in_
tree67_out_  =  tree67_out_
U20_g(x1, x2)  =  U20_g(x2)
U21_g(x1)  =  U21_g(x1)

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

GOAL1_IN_G(s(T8)) → U7_G(T8, s2t9_in_ga(T8, X27))
GOAL1_IN_G(s(T8)) → S2T9_IN_GA(T8, X27)
S2T9_IN_GA(s(T16), node(X65, X66, X65)) → U1_GA(T16, X65, X66, s2t9_in_ga(T16, X65))
S2T9_IN_GA(s(T16), node(X65, X66, X65)) → S2T9_IN_GA(T16, X65)
S2T9_IN_GA(s(T22), node(nil, X98, X99)) → U2_GA(T22, X98, X99, s2t9_in_ga(T22, X99))
S2T9_IN_GA(s(T22), node(nil, X98, X99)) → S2T9_IN_GA(T22, X99)
S2T9_IN_GA(s(T28), node(X131, X132, nil)) → U3_GA(T28, X131, X132, s2t9_in_ga(T28, X131))
S2T9_IN_GA(s(T28), node(X131, X132, nil)) → S2T9_IN_GA(T28, X131)
GOAL1_IN_G(s(T8)) → U8_G(T8, s2t9_in_ga(T8, T40))
U8_G(T8, s2t9_out_ga(T8, T40)) → U9_G(T8, tree36_in_g(T40))
U8_G(T8, s2t9_out_ga(T8, T40)) → TREE36_IN_G(T40)
TREE36_IN_G(node(T51, T49, T52)) → U4_G(T51, T49, T52, tree36_in_g(T51))
TREE36_IN_G(node(T51, T49, T52)) → TREE36_IN_G(T51)
TREE36_IN_G(node(T51, T49, T53)) → U5_G(T51, T49, T53, tree36_in_g(T51))
U5_G(T51, T49, T53, tree36_out_g(T51)) → U6_G(T51, T49, T53, tree36_in_g(T53))
U5_G(T51, T49, T53, tree36_out_g(T51)) → TREE36_IN_G(T53)
GOAL1_IN_G(s(T8)) → U10_G(T8, s2t9_in_ga(T8, T41))
U10_G(T8, s2t9_out_ga(T8, T41)) → U11_G(T8, T41, tree36_in_g(T41))
U10_G(T8, s2t9_out_ga(T8, T41)) → TREE36_IN_G(T41)
U11_G(T8, T41, tree36_out_g(T41)) → U12_G(T8, tree36_in_g(T41))
U11_G(T8, T41, tree36_out_g(T41)) → TREE36_IN_G(T41)
GOAL1_IN_G(s(T58)) → U13_G(T58, s2t9_in_ga(T58, X210))
GOAL1_IN_G(s(T58)) → U14_G(T58, s2t9_in_ga(T58, T60))
U14_G(T58, s2t9_out_ga(T58, T60)) → U15_G(T58, tree36_in_g(node(nil, X209, T60)))
U14_G(T58, s2t9_out_ga(T58, T60)) → TREE36_IN_G(node(nil, X209, T60))
GOAL1_IN_G(s(T67)) → U16_G(T67, s2t9_in_ga(T67, X251))
GOAL1_IN_G(s(T67)) → U17_G(T67, s2t9_in_ga(T67, T69))
U17_G(T67, s2t9_out_ga(T67, T69)) → U18_G(T67, tree36_in_g(node(T69, X252, nil)))
U17_G(T67, s2t9_out_ga(T67, T69)) → TREE36_IN_G(node(T69, X252, nil))
GOAL1_IN_G(s(T76)) → U19_G(T76, tree67_in_)
GOAL1_IN_G(s(T76)) → TREE67_IN_
U19_G(T76, tree67_out_) → U20_G(T76, tree67_in_)
U19_G(T76, tree67_out_) → TREE67_IN_
GOAL1_IN_G(0) → U21_G(tree67_in_)
GOAL1_IN_G(0) → TREE67_IN_

The TRS R consists of the following rules:

goal1_in_g(s(T8)) → U7_g(T8, s2t9_in_ga(T8, X27))
s2t9_in_ga(s(T16), node(X65, X66, X65)) → U1_ga(T16, X65, X66, s2t9_in_ga(T16, X65))
s2t9_in_ga(s(T22), node(nil, X98, X99)) → U2_ga(T22, X98, X99, s2t9_in_ga(T22, X99))
s2t9_in_ga(s(T28), node(X131, X132, nil)) → U3_ga(T28, X131, X132, s2t9_in_ga(T28, X131))
s2t9_in_ga(s(T34), node(nil, X155, nil)) → s2t9_out_ga(s(T34), node(nil, X155, nil))
s2t9_in_ga(0, nil) → s2t9_out_ga(0, nil)
U3_ga(T28, X131, X132, s2t9_out_ga(T28, X131)) → s2t9_out_ga(s(T28), node(X131, X132, nil))
U2_ga(T22, X98, X99, s2t9_out_ga(T22, X99)) → s2t9_out_ga(s(T22), node(nil, X98, X99))
U1_ga(T16, X65, X66, s2t9_out_ga(T16, X65)) → s2t9_out_ga(s(T16), node(X65, X66, X65))
U7_g(T8, s2t9_out_ga(T8, X27)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U8_g(T8, s2t9_in_ga(T8, T40))
U8_g(T8, s2t9_out_ga(T8, T40)) → U9_g(T8, tree36_in_g(T40))
tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U9_g(T8, tree36_out_g(T40)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U10_g(T8, s2t9_in_ga(T8, T41))
U10_g(T8, s2t9_out_ga(T8, T41)) → U11_g(T8, T41, tree36_in_g(T41))
U11_g(T8, T41, tree36_out_g(T41)) → U12_g(T8, tree36_in_g(T41))
U12_g(T8, tree36_out_g(T41)) → goal1_out_g(s(T8))
goal1_in_g(s(T58)) → U13_g(T58, s2t9_in_ga(T58, X210))
U13_g(T58, s2t9_out_ga(T58, X210)) → goal1_out_g(s(T58))
goal1_in_g(s(T58)) → U14_g(T58, s2t9_in_ga(T58, T60))
U14_g(T58, s2t9_out_ga(T58, T60)) → U15_g(T58, tree36_in_g(node(nil, X209, T60)))
U15_g(T58, tree36_out_g(node(nil, X209, T60))) → goal1_out_g(s(T58))
goal1_in_g(s(T67)) → U16_g(T67, s2t9_in_ga(T67, X251))
U16_g(T67, s2t9_out_ga(T67, X251)) → goal1_out_g(s(T67))
goal1_in_g(s(T67)) → U17_g(T67, s2t9_in_ga(T67, T69))
U17_g(T67, s2t9_out_ga(T67, T69)) → U18_g(T67, tree36_in_g(node(T69, X252, nil)))
U18_g(T67, tree36_out_g(node(T69, X252, nil))) → goal1_out_g(s(T67))
goal1_in_g(s(T76)) → U19_g(T76, tree67_in_)
tree67_in_tree67_out_
U19_g(T76, tree67_out_) → goal1_out_g(s(T76))
U19_g(T76, tree67_out_) → U20_g(T76, tree67_in_)
U20_g(T76, tree67_out_) → goal1_out_g(s(T76))
goal1_in_g(0) → U21_g(tree67_in_)
U21_g(tree67_out_) → goal1_out_g(0)

The argument filtering Pi contains the following mapping:
goal1_in_g(x1)  =  goal1_in_g(x1)
s(x1)  =  s(x1)
U7_g(x1, x2)  =  U7_g(x2)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x4)
U2_ga(x1, x2, x3, x4)  =  U2_ga(x4)
U3_ga(x1, x2, x3, x4)  =  U3_ga(x4)
s2t9_out_ga(x1, x2)  =  s2t9_out_ga(x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
goal1_out_g(x1)  =  goal1_out_g
U8_g(x1, x2)  =  U8_g(x2)
U9_g(x1, x2)  =  U9_g(x2)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
U10_g(x1, x2)  =  U10_g(x2)
U11_g(x1, x2, x3)  =  U11_g(x2, x3)
U12_g(x1, x2)  =  U12_g(x2)
U13_g(x1, x2)  =  U13_g(x2)
U14_g(x1, x2)  =  U14_g(x2)
U15_g(x1, x2)  =  U15_g(x2)
U16_g(x1, x2)  =  U16_g(x2)
U17_g(x1, x2)  =  U17_g(x2)
U18_g(x1, x2)  =  U18_g(x2)
U19_g(x1, x2)  =  U19_g(x2)
tree67_in_  =  tree67_in_
tree67_out_  =  tree67_out_
U20_g(x1, x2)  =  U20_g(x2)
U21_g(x1)  =  U21_g(x1)
GOAL1_IN_G(x1)  =  GOAL1_IN_G(x1)
U7_G(x1, x2)  =  U7_G(x2)
S2T9_IN_GA(x1, x2)  =  S2T9_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x4)
U2_GA(x1, x2, x3, x4)  =  U2_GA(x4)
U3_GA(x1, x2, x3, x4)  =  U3_GA(x4)
U8_G(x1, x2)  =  U8_G(x2)
U9_G(x1, x2)  =  U9_G(x2)
TREE36_IN_G(x1)  =  TREE36_IN_G(x1)
U4_G(x1, x2, x3, x4)  =  U4_G(x4)
U5_G(x1, x2, x3, x4)  =  U5_G(x3, x4)
U6_G(x1, x2, x3, x4)  =  U6_G(x4)
U10_G(x1, x2)  =  U10_G(x2)
U11_G(x1, x2, x3)  =  U11_G(x2, x3)
U12_G(x1, x2)  =  U12_G(x2)
U13_G(x1, x2)  =  U13_G(x2)
U14_G(x1, x2)  =  U14_G(x2)
U15_G(x1, x2)  =  U15_G(x2)
U16_G(x1, x2)  =  U16_G(x2)
U17_G(x1, x2)  =  U17_G(x2)
U18_G(x1, x2)  =  U18_G(x2)
U19_G(x1, x2)  =  U19_G(x2)
TREE67_IN_  =  TREE67_IN_
U20_G(x1, x2)  =  U20_G(x2)
U21_G(x1)  =  U21_G(x1)

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

(6) Obligation:

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

GOAL1_IN_G(s(T8)) → U7_G(T8, s2t9_in_ga(T8, X27))
GOAL1_IN_G(s(T8)) → S2T9_IN_GA(T8, X27)
S2T9_IN_GA(s(T16), node(X65, X66, X65)) → U1_GA(T16, X65, X66, s2t9_in_ga(T16, X65))
S2T9_IN_GA(s(T16), node(X65, X66, X65)) → S2T9_IN_GA(T16, X65)
S2T9_IN_GA(s(T22), node(nil, X98, X99)) → U2_GA(T22, X98, X99, s2t9_in_ga(T22, X99))
S2T9_IN_GA(s(T22), node(nil, X98, X99)) → S2T9_IN_GA(T22, X99)
S2T9_IN_GA(s(T28), node(X131, X132, nil)) → U3_GA(T28, X131, X132, s2t9_in_ga(T28, X131))
S2T9_IN_GA(s(T28), node(X131, X132, nil)) → S2T9_IN_GA(T28, X131)
GOAL1_IN_G(s(T8)) → U8_G(T8, s2t9_in_ga(T8, T40))
U8_G(T8, s2t9_out_ga(T8, T40)) → U9_G(T8, tree36_in_g(T40))
U8_G(T8, s2t9_out_ga(T8, T40)) → TREE36_IN_G(T40)
TREE36_IN_G(node(T51, T49, T52)) → U4_G(T51, T49, T52, tree36_in_g(T51))
TREE36_IN_G(node(T51, T49, T52)) → TREE36_IN_G(T51)
TREE36_IN_G(node(T51, T49, T53)) → U5_G(T51, T49, T53, tree36_in_g(T51))
U5_G(T51, T49, T53, tree36_out_g(T51)) → U6_G(T51, T49, T53, tree36_in_g(T53))
U5_G(T51, T49, T53, tree36_out_g(T51)) → TREE36_IN_G(T53)
GOAL1_IN_G(s(T8)) → U10_G(T8, s2t9_in_ga(T8, T41))
U10_G(T8, s2t9_out_ga(T8, T41)) → U11_G(T8, T41, tree36_in_g(T41))
U10_G(T8, s2t9_out_ga(T8, T41)) → TREE36_IN_G(T41)
U11_G(T8, T41, tree36_out_g(T41)) → U12_G(T8, tree36_in_g(T41))
U11_G(T8, T41, tree36_out_g(T41)) → TREE36_IN_G(T41)
GOAL1_IN_G(s(T58)) → U13_G(T58, s2t9_in_ga(T58, X210))
GOAL1_IN_G(s(T58)) → U14_G(T58, s2t9_in_ga(T58, T60))
U14_G(T58, s2t9_out_ga(T58, T60)) → U15_G(T58, tree36_in_g(node(nil, X209, T60)))
U14_G(T58, s2t9_out_ga(T58, T60)) → TREE36_IN_G(node(nil, X209, T60))
GOAL1_IN_G(s(T67)) → U16_G(T67, s2t9_in_ga(T67, X251))
GOAL1_IN_G(s(T67)) → U17_G(T67, s2t9_in_ga(T67, T69))
U17_G(T67, s2t9_out_ga(T67, T69)) → U18_G(T67, tree36_in_g(node(T69, X252, nil)))
U17_G(T67, s2t9_out_ga(T67, T69)) → TREE36_IN_G(node(T69, X252, nil))
GOAL1_IN_G(s(T76)) → U19_G(T76, tree67_in_)
GOAL1_IN_G(s(T76)) → TREE67_IN_
U19_G(T76, tree67_out_) → U20_G(T76, tree67_in_)
U19_G(T76, tree67_out_) → TREE67_IN_
GOAL1_IN_G(0) → U21_G(tree67_in_)
GOAL1_IN_G(0) → TREE67_IN_

The TRS R consists of the following rules:

goal1_in_g(s(T8)) → U7_g(T8, s2t9_in_ga(T8, X27))
s2t9_in_ga(s(T16), node(X65, X66, X65)) → U1_ga(T16, X65, X66, s2t9_in_ga(T16, X65))
s2t9_in_ga(s(T22), node(nil, X98, X99)) → U2_ga(T22, X98, X99, s2t9_in_ga(T22, X99))
s2t9_in_ga(s(T28), node(X131, X132, nil)) → U3_ga(T28, X131, X132, s2t9_in_ga(T28, X131))
s2t9_in_ga(s(T34), node(nil, X155, nil)) → s2t9_out_ga(s(T34), node(nil, X155, nil))
s2t9_in_ga(0, nil) → s2t9_out_ga(0, nil)
U3_ga(T28, X131, X132, s2t9_out_ga(T28, X131)) → s2t9_out_ga(s(T28), node(X131, X132, nil))
U2_ga(T22, X98, X99, s2t9_out_ga(T22, X99)) → s2t9_out_ga(s(T22), node(nil, X98, X99))
U1_ga(T16, X65, X66, s2t9_out_ga(T16, X65)) → s2t9_out_ga(s(T16), node(X65, X66, X65))
U7_g(T8, s2t9_out_ga(T8, X27)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U8_g(T8, s2t9_in_ga(T8, T40))
U8_g(T8, s2t9_out_ga(T8, T40)) → U9_g(T8, tree36_in_g(T40))
tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U9_g(T8, tree36_out_g(T40)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U10_g(T8, s2t9_in_ga(T8, T41))
U10_g(T8, s2t9_out_ga(T8, T41)) → U11_g(T8, T41, tree36_in_g(T41))
U11_g(T8, T41, tree36_out_g(T41)) → U12_g(T8, tree36_in_g(T41))
U12_g(T8, tree36_out_g(T41)) → goal1_out_g(s(T8))
goal1_in_g(s(T58)) → U13_g(T58, s2t9_in_ga(T58, X210))
U13_g(T58, s2t9_out_ga(T58, X210)) → goal1_out_g(s(T58))
goal1_in_g(s(T58)) → U14_g(T58, s2t9_in_ga(T58, T60))
U14_g(T58, s2t9_out_ga(T58, T60)) → U15_g(T58, tree36_in_g(node(nil, X209, T60)))
U15_g(T58, tree36_out_g(node(nil, X209, T60))) → goal1_out_g(s(T58))
goal1_in_g(s(T67)) → U16_g(T67, s2t9_in_ga(T67, X251))
U16_g(T67, s2t9_out_ga(T67, X251)) → goal1_out_g(s(T67))
goal1_in_g(s(T67)) → U17_g(T67, s2t9_in_ga(T67, T69))
U17_g(T67, s2t9_out_ga(T67, T69)) → U18_g(T67, tree36_in_g(node(T69, X252, nil)))
U18_g(T67, tree36_out_g(node(T69, X252, nil))) → goal1_out_g(s(T67))
goal1_in_g(s(T76)) → U19_g(T76, tree67_in_)
tree67_in_tree67_out_
U19_g(T76, tree67_out_) → goal1_out_g(s(T76))
U19_g(T76, tree67_out_) → U20_g(T76, tree67_in_)
U20_g(T76, tree67_out_) → goal1_out_g(s(T76))
goal1_in_g(0) → U21_g(tree67_in_)
U21_g(tree67_out_) → goal1_out_g(0)

The argument filtering Pi contains the following mapping:
goal1_in_g(x1)  =  goal1_in_g(x1)
s(x1)  =  s(x1)
U7_g(x1, x2)  =  U7_g(x2)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x4)
U2_ga(x1, x2, x3, x4)  =  U2_ga(x4)
U3_ga(x1, x2, x3, x4)  =  U3_ga(x4)
s2t9_out_ga(x1, x2)  =  s2t9_out_ga(x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
goal1_out_g(x1)  =  goal1_out_g
U8_g(x1, x2)  =  U8_g(x2)
U9_g(x1, x2)  =  U9_g(x2)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
U10_g(x1, x2)  =  U10_g(x2)
U11_g(x1, x2, x3)  =  U11_g(x2, x3)
U12_g(x1, x2)  =  U12_g(x2)
U13_g(x1, x2)  =  U13_g(x2)
U14_g(x1, x2)  =  U14_g(x2)
U15_g(x1, x2)  =  U15_g(x2)
U16_g(x1, x2)  =  U16_g(x2)
U17_g(x1, x2)  =  U17_g(x2)
U18_g(x1, x2)  =  U18_g(x2)
U19_g(x1, x2)  =  U19_g(x2)
tree67_in_  =  tree67_in_
tree67_out_  =  tree67_out_
U20_g(x1, x2)  =  U20_g(x2)
U21_g(x1)  =  U21_g(x1)
GOAL1_IN_G(x1)  =  GOAL1_IN_G(x1)
U7_G(x1, x2)  =  U7_G(x2)
S2T9_IN_GA(x1, x2)  =  S2T9_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x4)
U2_GA(x1, x2, x3, x4)  =  U2_GA(x4)
U3_GA(x1, x2, x3, x4)  =  U3_GA(x4)
U8_G(x1, x2)  =  U8_G(x2)
U9_G(x1, x2)  =  U9_G(x2)
TREE36_IN_G(x1)  =  TREE36_IN_G(x1)
U4_G(x1, x2, x3, x4)  =  U4_G(x4)
U5_G(x1, x2, x3, x4)  =  U5_G(x3, x4)
U6_G(x1, x2, x3, x4)  =  U6_G(x4)
U10_G(x1, x2)  =  U10_G(x2)
U11_G(x1, x2, x3)  =  U11_G(x2, x3)
U12_G(x1, x2)  =  U12_G(x2)
U13_G(x1, x2)  =  U13_G(x2)
U14_G(x1, x2)  =  U14_G(x2)
U15_G(x1, x2)  =  U15_G(x2)
U16_G(x1, x2)  =  U16_G(x2)
U17_G(x1, x2)  =  U17_G(x2)
U18_G(x1, x2)  =  U18_G(x2)
U19_G(x1, x2)  =  U19_G(x2)
TREE67_IN_  =  TREE67_IN_
U20_G(x1, x2)  =  U20_G(x2)
U21_G(x1)  =  U21_G(x1)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

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

(8) Complex Obligation (AND)

(9) Obligation:

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

TREE36_IN_G(node(T51, T49, T53)) → U5_G(T51, T49, T53, tree36_in_g(T51))
U5_G(T51, T49, T53, tree36_out_g(T51)) → TREE36_IN_G(T53)
TREE36_IN_G(node(T51, T49, T52)) → TREE36_IN_G(T51)

The TRS R consists of the following rules:

goal1_in_g(s(T8)) → U7_g(T8, s2t9_in_ga(T8, X27))
s2t9_in_ga(s(T16), node(X65, X66, X65)) → U1_ga(T16, X65, X66, s2t9_in_ga(T16, X65))
s2t9_in_ga(s(T22), node(nil, X98, X99)) → U2_ga(T22, X98, X99, s2t9_in_ga(T22, X99))
s2t9_in_ga(s(T28), node(X131, X132, nil)) → U3_ga(T28, X131, X132, s2t9_in_ga(T28, X131))
s2t9_in_ga(s(T34), node(nil, X155, nil)) → s2t9_out_ga(s(T34), node(nil, X155, nil))
s2t9_in_ga(0, nil) → s2t9_out_ga(0, nil)
U3_ga(T28, X131, X132, s2t9_out_ga(T28, X131)) → s2t9_out_ga(s(T28), node(X131, X132, nil))
U2_ga(T22, X98, X99, s2t9_out_ga(T22, X99)) → s2t9_out_ga(s(T22), node(nil, X98, X99))
U1_ga(T16, X65, X66, s2t9_out_ga(T16, X65)) → s2t9_out_ga(s(T16), node(X65, X66, X65))
U7_g(T8, s2t9_out_ga(T8, X27)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U8_g(T8, s2t9_in_ga(T8, T40))
U8_g(T8, s2t9_out_ga(T8, T40)) → U9_g(T8, tree36_in_g(T40))
tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U9_g(T8, tree36_out_g(T40)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U10_g(T8, s2t9_in_ga(T8, T41))
U10_g(T8, s2t9_out_ga(T8, T41)) → U11_g(T8, T41, tree36_in_g(T41))
U11_g(T8, T41, tree36_out_g(T41)) → U12_g(T8, tree36_in_g(T41))
U12_g(T8, tree36_out_g(T41)) → goal1_out_g(s(T8))
goal1_in_g(s(T58)) → U13_g(T58, s2t9_in_ga(T58, X210))
U13_g(T58, s2t9_out_ga(T58, X210)) → goal1_out_g(s(T58))
goal1_in_g(s(T58)) → U14_g(T58, s2t9_in_ga(T58, T60))
U14_g(T58, s2t9_out_ga(T58, T60)) → U15_g(T58, tree36_in_g(node(nil, X209, T60)))
U15_g(T58, tree36_out_g(node(nil, X209, T60))) → goal1_out_g(s(T58))
goal1_in_g(s(T67)) → U16_g(T67, s2t9_in_ga(T67, X251))
U16_g(T67, s2t9_out_ga(T67, X251)) → goal1_out_g(s(T67))
goal1_in_g(s(T67)) → U17_g(T67, s2t9_in_ga(T67, T69))
U17_g(T67, s2t9_out_ga(T67, T69)) → U18_g(T67, tree36_in_g(node(T69, X252, nil)))
U18_g(T67, tree36_out_g(node(T69, X252, nil))) → goal1_out_g(s(T67))
goal1_in_g(s(T76)) → U19_g(T76, tree67_in_)
tree67_in_tree67_out_
U19_g(T76, tree67_out_) → goal1_out_g(s(T76))
U19_g(T76, tree67_out_) → U20_g(T76, tree67_in_)
U20_g(T76, tree67_out_) → goal1_out_g(s(T76))
goal1_in_g(0) → U21_g(tree67_in_)
U21_g(tree67_out_) → goal1_out_g(0)

The argument filtering Pi contains the following mapping:
goal1_in_g(x1)  =  goal1_in_g(x1)
s(x1)  =  s(x1)
U7_g(x1, x2)  =  U7_g(x2)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x4)
U2_ga(x1, x2, x3, x4)  =  U2_ga(x4)
U3_ga(x1, x2, x3, x4)  =  U3_ga(x4)
s2t9_out_ga(x1, x2)  =  s2t9_out_ga(x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
goal1_out_g(x1)  =  goal1_out_g
U8_g(x1, x2)  =  U8_g(x2)
U9_g(x1, x2)  =  U9_g(x2)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
U10_g(x1, x2)  =  U10_g(x2)
U11_g(x1, x2, x3)  =  U11_g(x2, x3)
U12_g(x1, x2)  =  U12_g(x2)
U13_g(x1, x2)  =  U13_g(x2)
U14_g(x1, x2)  =  U14_g(x2)
U15_g(x1, x2)  =  U15_g(x2)
U16_g(x1, x2)  =  U16_g(x2)
U17_g(x1, x2)  =  U17_g(x2)
U18_g(x1, x2)  =  U18_g(x2)
U19_g(x1, x2)  =  U19_g(x2)
tree67_in_  =  tree67_in_
tree67_out_  =  tree67_out_
U20_g(x1, x2)  =  U20_g(x2)
U21_g(x1)  =  U21_g(x1)
TREE36_IN_G(x1)  =  TREE36_IN_G(x1)
U5_G(x1, x2, x3, x4)  =  U5_G(x3, 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:

TREE36_IN_G(node(T51, T49, T53)) → U5_G(T51, T49, T53, tree36_in_g(T51))
U5_G(T51, T49, T53, tree36_out_g(T51)) → TREE36_IN_G(T53)
TREE36_IN_G(node(T51, T49, T52)) → TREE36_IN_G(T51)

The TRS R consists of the following rules:

tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))

The argument filtering Pi contains the following mapping:
node(x1, x2, x3)  =  node(x1, x3)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
TREE36_IN_G(x1)  =  TREE36_IN_G(x1)
U5_G(x1, x2, x3, x4)  =  U5_G(x3, 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:

TREE36_IN_G(node(T51, T53)) → U5_G(T53, tree36_in_g(T51))
U5_G(T53, tree36_out_g) → TREE36_IN_G(T53)
TREE36_IN_G(node(T51, T52)) → TREE36_IN_G(T51)

The TRS R consists of the following rules:

tree36_in_g(nil) → tree36_out_g
tree36_in_g(node(T51, T52)) → U4_g(tree36_in_g(T51))
tree36_in_g(node(T51, T53)) → U5_g(T53, tree36_in_g(T51))
U4_g(tree36_out_g) → tree36_out_g
U5_g(T53, tree36_out_g) → U6_g(tree36_in_g(T53))
U6_g(tree36_out_g) → tree36_out_g

The set Q consists of the following terms:

tree36_in_g(x0)
U4_g(x0)
U5_g(x0, x1)
U6_g(x0)

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:

  • U5_G(T53, tree36_out_g) → TREE36_IN_G(T53)
    The graph contains the following edges 1 >= 1

  • TREE36_IN_G(node(T51, T52)) → TREE36_IN_G(T51)
    The graph contains the following edges 1 > 1

  • TREE36_IN_G(node(T51, T53)) → U5_G(T53, tree36_in_g(T51))
    The graph contains the following edges 1 > 1

(15) YES

(16) Obligation:

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

S2T9_IN_GA(s(T22), node(nil, X98, X99)) → S2T9_IN_GA(T22, X99)
S2T9_IN_GA(s(T16), node(X65, X66, X65)) → S2T9_IN_GA(T16, X65)
S2T9_IN_GA(s(T28), node(X131, X132, nil)) → S2T9_IN_GA(T28, X131)

The TRS R consists of the following rules:

goal1_in_g(s(T8)) → U7_g(T8, s2t9_in_ga(T8, X27))
s2t9_in_ga(s(T16), node(X65, X66, X65)) → U1_ga(T16, X65, X66, s2t9_in_ga(T16, X65))
s2t9_in_ga(s(T22), node(nil, X98, X99)) → U2_ga(T22, X98, X99, s2t9_in_ga(T22, X99))
s2t9_in_ga(s(T28), node(X131, X132, nil)) → U3_ga(T28, X131, X132, s2t9_in_ga(T28, X131))
s2t9_in_ga(s(T34), node(nil, X155, nil)) → s2t9_out_ga(s(T34), node(nil, X155, nil))
s2t9_in_ga(0, nil) → s2t9_out_ga(0, nil)
U3_ga(T28, X131, X132, s2t9_out_ga(T28, X131)) → s2t9_out_ga(s(T28), node(X131, X132, nil))
U2_ga(T22, X98, X99, s2t9_out_ga(T22, X99)) → s2t9_out_ga(s(T22), node(nil, X98, X99))
U1_ga(T16, X65, X66, s2t9_out_ga(T16, X65)) → s2t9_out_ga(s(T16), node(X65, X66, X65))
U7_g(T8, s2t9_out_ga(T8, X27)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U8_g(T8, s2t9_in_ga(T8, T40))
U8_g(T8, s2t9_out_ga(T8, T40)) → U9_g(T8, tree36_in_g(T40))
tree36_in_g(nil) → tree36_out_g(nil)
tree36_in_g(node(T51, T49, T52)) → U4_g(T51, T49, T52, tree36_in_g(T51))
tree36_in_g(node(T51, T49, T53)) → U5_g(T51, T49, T53, tree36_in_g(T51))
U5_g(T51, T49, T53, tree36_out_g(T51)) → U6_g(T51, T49, T53, tree36_in_g(T53))
U6_g(T51, T49, T53, tree36_out_g(T53)) → tree36_out_g(node(T51, T49, T53))
U4_g(T51, T49, T52, tree36_out_g(T51)) → tree36_out_g(node(T51, T49, T52))
U9_g(T8, tree36_out_g(T40)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U10_g(T8, s2t9_in_ga(T8, T41))
U10_g(T8, s2t9_out_ga(T8, T41)) → U11_g(T8, T41, tree36_in_g(T41))
U11_g(T8, T41, tree36_out_g(T41)) → U12_g(T8, tree36_in_g(T41))
U12_g(T8, tree36_out_g(T41)) → goal1_out_g(s(T8))
goal1_in_g(s(T58)) → U13_g(T58, s2t9_in_ga(T58, X210))
U13_g(T58, s2t9_out_ga(T58, X210)) → goal1_out_g(s(T58))
goal1_in_g(s(T58)) → U14_g(T58, s2t9_in_ga(T58, T60))
U14_g(T58, s2t9_out_ga(T58, T60)) → U15_g(T58, tree36_in_g(node(nil, X209, T60)))
U15_g(T58, tree36_out_g(node(nil, X209, T60))) → goal1_out_g(s(T58))
goal1_in_g(s(T67)) → U16_g(T67, s2t9_in_ga(T67, X251))
U16_g(T67, s2t9_out_ga(T67, X251)) → goal1_out_g(s(T67))
goal1_in_g(s(T67)) → U17_g(T67, s2t9_in_ga(T67, T69))
U17_g(T67, s2t9_out_ga(T67, T69)) → U18_g(T67, tree36_in_g(node(T69, X252, nil)))
U18_g(T67, tree36_out_g(node(T69, X252, nil))) → goal1_out_g(s(T67))
goal1_in_g(s(T76)) → U19_g(T76, tree67_in_)
tree67_in_tree67_out_
U19_g(T76, tree67_out_) → goal1_out_g(s(T76))
U19_g(T76, tree67_out_) → U20_g(T76, tree67_in_)
U20_g(T76, tree67_out_) → goal1_out_g(s(T76))
goal1_in_g(0) → U21_g(tree67_in_)
U21_g(tree67_out_) → goal1_out_g(0)

The argument filtering Pi contains the following mapping:
goal1_in_g(x1)  =  goal1_in_g(x1)
s(x1)  =  s(x1)
U7_g(x1, x2)  =  U7_g(x2)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x4)
U2_ga(x1, x2, x3, x4)  =  U2_ga(x4)
U3_ga(x1, x2, x3, x4)  =  U3_ga(x4)
s2t9_out_ga(x1, x2)  =  s2t9_out_ga(x2)
node(x1, x2, x3)  =  node(x1, x3)
0  =  0
goal1_out_g(x1)  =  goal1_out_g
U8_g(x1, x2)  =  U8_g(x2)
U9_g(x1, x2)  =  U9_g(x2)
tree36_in_g(x1)  =  tree36_in_g(x1)
nil  =  nil
tree36_out_g(x1)  =  tree36_out_g
U4_g(x1, x2, x3, x4)  =  U4_g(x4)
U5_g(x1, x2, x3, x4)  =  U5_g(x3, x4)
U6_g(x1, x2, x3, x4)  =  U6_g(x4)
U10_g(x1, x2)  =  U10_g(x2)
U11_g(x1, x2, x3)  =  U11_g(x2, x3)
U12_g(x1, x2)  =  U12_g(x2)
U13_g(x1, x2)  =  U13_g(x2)
U14_g(x1, x2)  =  U14_g(x2)
U15_g(x1, x2)  =  U15_g(x2)
U16_g(x1, x2)  =  U16_g(x2)
U17_g(x1, x2)  =  U17_g(x2)
U18_g(x1, x2)  =  U18_g(x2)
U19_g(x1, x2)  =  U19_g(x2)
tree67_in_  =  tree67_in_
tree67_out_  =  tree67_out_
U20_g(x1, x2)  =  U20_g(x2)
U21_g(x1)  =  U21_g(x1)
S2T9_IN_GA(x1, x2)  =  S2T9_IN_GA(x1)

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:

S2T9_IN_GA(s(T22), node(nil, X98, X99)) → S2T9_IN_GA(T22, X99)
S2T9_IN_GA(s(T16), node(X65, X66, X65)) → S2T9_IN_GA(T16, X65)
S2T9_IN_GA(s(T28), node(X131, X132, nil)) → S2T9_IN_GA(T28, X131)

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

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:

S2T9_IN_GA(s(T22)) → S2T9_IN_GA(T22)

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:

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

(22) YES