0 Prolog
↳1 CutEliminatorProof (⇐)
↳2 Prolog
↳3 UndefinedPredicateHandlerProof (⇐)
↳4 Prolog
↳5 PrologToPiTRSProof (⇐)
↳6 PiTRS
↳7 DependencyPairsProof (⇔)
↳8 PiDP
↳9 DependencyGraphProof (⇔)
↳10 PiDP
↳11 PiDPToQDPProof (⇐)
↳12 QDP
↳13 UsableRulesReductionPairsProof (⇔)
↳14 QDP
↳15 Narrowing (⇐)
↳16 QDP
↳17 Narrowing (⇐)
↳18 QDP
↳19 Instantiation (⇔)
↳20 QDP
↳21 Instantiation (⇔)
↳22 QDP
↳23 Instantiation (⇔)
↳24 QDP
↳25 Instantiation (⇔)
↳26 QDP
↳27 Instantiation (⇔)
↳28 QDP
↳29 Instantiation (⇔)
↳30 QDP
↳31 Narrowing (⇐)
↳32 QDP
↳33 Rewriting (⇔)
↳34 QDP
↳35 Rewriting (⇔)
↳36 QDP
↳37 Rewriting (⇔)
↳38 QDP
↳39 NonTerminationProof (⇔)
↳40 FALSE
↳41 PrologToPiTRSProof (⇐)
↳42 PiTRS
↳43 DependencyPairsProof (⇔)
↳44 PiDP
↳45 DependencyGraphProof (⇔)
↳46 PiDP
↳47 PiDPToQDPProof (⇐)
↳48 QDP
↳49 Narrowing (⇐)
↳50 QDP
↳51 Narrowing (⇐)
↳52 QDP
↳53 Instantiation (⇔)
↳54 QDP
↳55 Instantiation (⇔)
↳56 QDP
↳57 QDPOrderProof (⇔)
↳58 QDP
↳59 DependencyGraphProof (⇔)
↳60 QDP
↳61 Instantiation (⇔)
↳62 QDP
↳63 Instantiation (⇔)
↳64 QDP
↳65 Instantiation (⇔)
↳66 QDP
↳67 Instantiation (⇔)
↳68 QDP
↳69 Narrowing (⇐)
↳70 QDP
↳71 Rewriting (⇔)
↳72 QDP
↳73 Rewriting (⇔)
↳74 QDP
↳75 Rewriting (⇔)
↳76 QDP
↳77 NonTerminationProof (⇔)
↳78 FALSE
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(void) → U1_G(true_in_)
BIN_TREE_IN_G(void) → TRUE_IN_
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T, L))
BIN_TREE_IN_G(T) → LEFT_IN_GA(T, L)
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T, R))
U2_G(T, left_out_ga(T, L)) → RIGHT_IN_GA(T, R)
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, L, R, bin_tree_in_g(L))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U4_G(T, L, R, bin_tree_out_g(L)) → U5_G(T, bin_tree_in_g(R))
U4_G(T, L, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(void) → U1_G(true_in_)
BIN_TREE_IN_G(void) → TRUE_IN_
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T, L))
BIN_TREE_IN_G(T) → LEFT_IN_GA(T, L)
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T, R))
U2_G(T, left_out_ga(T, L)) → RIGHT_IN_GA(T, R)
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, L, R, bin_tree_in_g(L))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U4_G(T, L, R, bin_tree_out_g(L)) → U5_G(T, bin_tree_in_g(R))
U4_G(T, L, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T, L))
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T, R))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, L, R, bin_tree_in_g(L))
U4_G(T, L, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T))
U2_G(T, left_out_ga(L)) → U3_G(L, right_in_ga(T))
U3_G(L, right_out_ga(R)) → U4_G(R, bin_tree_in_g(L))
U4_G(R, bin_tree_out_g) → BIN_TREE_IN_G(R)
U3_G(L, right_out_ga(R)) → BIN_TREE_IN_G(L)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(L)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(R)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
Used ordering: POLO with Polynomial interpretation [POLO]:
left_in_ga(tree(X1, L, X2)) → left_out_ga(L)
right_in_ga(tree(X3, X4, R)) → right_out_ga(R)
POL(BIN_TREE_IN_G(x1)) = 2·x1
POL(U1_g(x1)) = 2·x1
POL(U2_G(x1, x2)) = x1 + x2
POL(U2_g(x1, x2)) = x1 + x2
POL(U3_G(x1, x2)) = 2·x1 + x2
POL(U3_g(x1, x2)) = 2·x1 + x2
POL(U4_G(x1, x2)) = 2·x1 + x2
POL(U4_g(x1, x2)) = 2·x1 + x2
POL(U5_g(x1)) = x1
POL(bin_tree_in_g(x1)) = 2·x1
POL(bin_tree_out_g) = 0
POL(left_in_ga(x1)) = x1
POL(left_out_ga(x1)) = 2·x1
POL(right_in_ga(x1)) = x1
POL(right_out_ga(x1)) = 2·x1
POL(tree(x1, x2, x3)) = x1 + 2·x2 + 2·x3
POL(true_in_) = 0
POL(true_out_) = 0
POL(void) = 0
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T))
U2_G(T, left_out_ga(L)) → U3_G(L, right_in_ga(T))
U3_G(L, right_out_ga(R)) → U4_G(R, bin_tree_in_g(L))
U4_G(R, bin_tree_out_g) → BIN_TREE_IN_G(R)
U3_G(L, right_out_ga(R)) → BIN_TREE_IN_G(L)
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U2_G(T, left_out_ga(L)) → U3_G(L, right_in_ga(T))
U3_G(L, right_out_ga(R)) → U4_G(R, bin_tree_in_g(L))
U4_G(R, bin_tree_out_g) → BIN_TREE_IN_G(R)
U3_G(L, right_out_ga(R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U2_G(void, left_out_ga(y1)) → U3_G(y1, right_out_ga(void))
U3_G(L, right_out_ga(R)) → U4_G(R, bin_tree_in_g(L))
U4_G(R, bin_tree_out_g) → BIN_TREE_IN_G(R)
U3_G(L, right_out_ga(R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U2_G(void, left_out_ga(y1)) → U3_G(y1, right_out_ga(void))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(z0, right_out_ga(void)) → U4_G(void, bin_tree_in_g(z0))
U4_G(R, bin_tree_out_g) → BIN_TREE_IN_G(R)
U3_G(L, right_out_ga(R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U2_G(void, left_out_ga(y1)) → U3_G(y1, right_out_ga(void))
U3_G(z0, right_out_ga(void)) → U4_G(void, bin_tree_in_g(z0))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U3_G(L, right_out_ga(R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U2_G(void, left_out_ga(y1)) → U3_G(y1, right_out_ga(void))
U3_G(z0, right_out_ga(void)) → U4_G(void, bin_tree_in_g(z0))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(z0, right_out_ga(void)) → BIN_TREE_IN_G(z0)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U2_G(void, left_out_ga(y1)) → U3_G(y1, right_out_ga(void))
U3_G(z0, right_out_ga(void)) → U4_G(void, bin_tree_in_g(z0))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U3_G(z0, right_out_ga(void)) → BIN_TREE_IN_G(z0)
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U3_G(z0, right_out_ga(void)) → U4_G(void, bin_tree_in_g(z0))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U3_G(z0, right_out_ga(void)) → BIN_TREE_IN_G(z0)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(void, right_out_ga(void)) → U4_G(void, bin_tree_in_g(void))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U3_G(z0, right_out_ga(void)) → BIN_TREE_IN_G(z0)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
U3_G(void, right_out_ga(void)) → U4_G(void, bin_tree_in_g(void))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(void, right_out_ga(void)) → BIN_TREE_IN_G(void)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
U3_G(void, right_out_ga(void)) → U4_G(void, bin_tree_in_g(void))
U3_G(void, right_out_ga(void)) → BIN_TREE_IN_G(void)
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(void, right_out_ga(void)) → U4_G(void, U1_g(true_in_))
U3_G(void, right_out_ga(void)) → U4_G(void, U2_g(void, left_in_ga(void)))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
U3_G(void, right_out_ga(void)) → BIN_TREE_IN_G(void)
U3_G(void, right_out_ga(void)) → U4_G(void, U1_g(true_in_))
U3_G(void, right_out_ga(void)) → U4_G(void, U2_g(void, left_in_ga(void)))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(void, right_out_ga(void)) → U4_G(void, U1_g(true_out_))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
U3_G(void, right_out_ga(void)) → BIN_TREE_IN_G(void)
U3_G(void, right_out_ga(void)) → U4_G(void, U2_g(void, left_in_ga(void)))
U3_G(void, right_out_ga(void)) → U4_G(void, U1_g(true_out_))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(void, right_out_ga(void)) → U4_G(void, U2_g(void, left_out_ga(void)))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
U3_G(void, right_out_ga(void)) → BIN_TREE_IN_G(void)
U3_G(void, right_out_ga(void)) → U4_G(void, U1_g(true_out_))
U3_G(void, right_out_ga(void)) → U4_G(void, U2_g(void, left_out_ga(void)))
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
U3_G(void, right_out_ga(void)) → U4_G(void, bin_tree_out_g)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void))
U4_G(void, bin_tree_out_g) → BIN_TREE_IN_G(void)
U2_G(void, left_out_ga(void)) → U3_G(void, right_out_ga(void))
U3_G(void, right_out_ga(void)) → BIN_TREE_IN_G(void)
U3_G(void, right_out_ga(void)) → U4_G(void, U2_g(void, left_out_ga(void)))
U3_G(void, right_out_ga(void)) → U4_G(void, bin_tree_out_g)
bin_tree_in_g(void) → U1_g(true_in_)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void)
U2_g(T, left_out_ga(L)) → U3_g(L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void)
U3_g(L, right_out_ga(R)) → U4_g(R, bin_tree_in_g(L))
U4_g(R, bin_tree_out_g) → U5_g(bin_tree_in_g(R))
U5_g(bin_tree_out_g) → bin_tree_out_g
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1)
U4_g(x0, x1)
U5_g(x0)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(void) → U1_G(true_in_)
BIN_TREE_IN_G(void) → TRUE_IN_
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T, L))
BIN_TREE_IN_G(T) → LEFT_IN_GA(T, L)
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T, R))
U2_G(T, left_out_ga(T, L)) → RIGHT_IN_GA(T, R)
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, L, R, bin_tree_in_g(L))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U4_G(T, L, R, bin_tree_out_g(L)) → U5_G(T, bin_tree_in_g(R))
U4_G(T, L, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(void) → U1_G(true_in_)
BIN_TREE_IN_G(void) → TRUE_IN_
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T, L))
BIN_TREE_IN_G(T) → LEFT_IN_GA(T, L)
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T, R))
U2_G(T, left_out_ga(T, L)) → RIGHT_IN_GA(T, R)
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, L, R, bin_tree_in_g(L))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U4_G(T, L, R, bin_tree_out_g(L)) → U5_G(T, bin_tree_in_g(R))
U4_G(T, L, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T, L))
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T, R))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, L, R, bin_tree_in_g(L))
U4_G(T, L, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T, L))
left_in_ga(void, void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2), L) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T, R))
right_in_ga(void, void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R), R) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, L, R, bin_tree_in_g(L))
U4_g(T, L, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
BIN_TREE_IN_G(T) → U2_G(T, left_in_ga(T))
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
BIN_TREE_IN_G(tree(x0, x1, x2)) → U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), x1))
U2_G(T, left_out_ga(T, L)) → U3_G(T, L, right_in_ga(T))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
BIN_TREE_IN_G(tree(x0, x1, x2)) → U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), x1))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U2_G(void, left_out_ga(void, y1)) → U3_G(void, y1, right_out_ga(void, void))
U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), y1)) → U3_G(tree(x0, x1, x2), y1, right_out_ga(tree(x0, x1, x2), x2))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
BIN_TREE_IN_G(tree(x0, x1, x2)) → U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), x1))
U2_G(void, left_out_ga(void, y1)) → U3_G(void, y1, right_out_ga(void, void))
U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), y1)) → U3_G(tree(x0, x1, x2), y1, right_out_ga(tree(x0, x1, x2), x2))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
BIN_TREE_IN_G(tree(x0, x1, x2)) → U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), x1))
U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), y1)) → U3_G(tree(x0, x1, x2), y1, right_out_ga(tree(x0, x1, x2), x2))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U2_G(tree(z0, z1, z2), left_out_ga(tree(z0, z1, z2), z1)) → U3_G(tree(z0, z1, z2), z1, right_out_ga(tree(z0, z1, z2), z2))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
BIN_TREE_IN_G(tree(x0, x1, x2)) → U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), x1))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U2_G(tree(z0, z1, z2), left_out_ga(tree(z0, z1, z2), z1)) → U3_G(tree(z0, z1, z2), z1, right_out_ga(tree(z0, z1, z2), z2))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2_G(tree(z0, z1, z2), left_out_ga(tree(z0, z1, z2), z1)) → U3_G(tree(z0, z1, z2), z1, right_out_ga(tree(z0, z1, z2), z2))
POL(BIN_TREE_IN_G(x1)) = x1
POL(U1_g(x1)) = 0
POL(U2_G(x1, x2)) = x1
POL(U2_g(x1, x2)) = 0
POL(U3_G(x1, x2, x3)) = x2 + x3
POL(U3_g(x1, x2, x3)) = 0
POL(U4_G(x1, x2, x3)) = x2
POL(U4_g(x1, x2, x3)) = 0
POL(U5_g(x1, x2)) = 0
POL(bin_tree_in_g(x1)) = 0
POL(bin_tree_out_g(x1)) = 0
POL(left_in_ga(x1)) = x1
POL(left_out_ga(x1, x2)) = 0
POL(right_in_ga(x1)) = 0
POL(right_out_ga(x1, x2)) = x2
POL(tree(x1, x2, x3)) = 1 + x2 + x3
POL(true_in_) = 0
POL(true_out_) = 0
POL(void) = 0
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
BIN_TREE_IN_G(tree(x0, x1, x2)) → U2_G(tree(x0, x1, x2), left_out_ga(tree(x0, x1, x2), x1))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U3_G(T, L, right_out_ga(T, R)) → U4_G(T, R, bin_tree_in_g(L))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_in_g(void))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_in_g(void))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_in_g(void))
U4_G(T, R, bin_tree_out_g(L)) → BIN_TREE_IN_G(R)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_in_g(void))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U3_G(T, L, right_out_ga(T, R)) → BIN_TREE_IN_G(L)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_in_g(void))
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → BIN_TREE_IN_G(void)
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_in_g(void))
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → BIN_TREE_IN_G(void)
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U1_g(true_in_))
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U2_g(void, left_in_ga(void)))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U1_g(true_in_))
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U2_g(void, left_in_ga(void)))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U1_g(true_out_))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U2_g(void, left_in_ga(void)))
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U1_g(true_out_))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U2_g(void, left_out_ga(void, void)))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U1_g(true_out_))
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U2_g(void, left_out_ga(void, void)))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_out_g(void))
BIN_TREE_IN_G(void) → U2_G(void, left_out_ga(void, void))
U2_G(void, left_out_ga(void, void)) → U3_G(void, void, right_out_ga(void, void))
U4_G(void, void, bin_tree_out_g(x2)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → BIN_TREE_IN_G(void)
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, U2_g(void, left_out_ga(void, void)))
U3_G(void, void, right_out_ga(void, void)) → U4_G(void, void, bin_tree_out_g(void))
bin_tree_in_g(void) → U1_g(true_in_)
true_in_ → true_out_
U1_g(true_out_) → bin_tree_out_g(void)
bin_tree_in_g(T) → U2_g(T, left_in_ga(T))
left_in_ga(void) → left_out_ga(void, void)
left_in_ga(tree(X1, L, X2)) → left_out_ga(tree(X1, L, X2), L)
U2_g(T, left_out_ga(T, L)) → U3_g(T, L, right_in_ga(T))
right_in_ga(void) → right_out_ga(void, void)
right_in_ga(tree(X3, X4, R)) → right_out_ga(tree(X3, X4, R), R)
U3_g(T, L, right_out_ga(T, R)) → U4_g(T, R, bin_tree_in_g(L))
U4_g(T, R, bin_tree_out_g(L)) → U5_g(T, bin_tree_in_g(R))
U5_g(T, bin_tree_out_g(R)) → bin_tree_out_g(T)
bin_tree_in_g(x0)
true_in_
U1_g(x0)
left_in_ga(x0)
U2_g(x0, x1)
right_in_ga(x0)
U3_g(x0, x1, x2)
U4_g(x0, x1, x2)
U5_g(x0, x1)